home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / thinkref / archive / THINKPascalUH2.1.sea / THINKPas Univ Hdr 2.1 / Interfaces / Movies.p < prev    next >
Text File  |  1995-09-14  |  81KB  |  2,699 lines

  1. { Converted with MPW2TPas Tuesday, September 12, 1995 7:58:06 PM }
  2. {}
  3. {     File:        Movies.p}
  4. { }
  5. {     Contains:    QuickTime Interfaces.}
  6. { }
  7. {     Version:    Technology:    QuickTime 2.0}
  8. {                 Package:    Universal Interfaces 2.1 in “MPW Latest” on ETO #18}
  9. { }
  10. {     Copyright:    © 1984-1995 by Apple Computer, Inc.}
  11. {                 All rights reserved.}
  12. { }
  13. {     Bugs?:        If you find a problem with this file, use the Apple Bug Reporter}
  14. {                 stack.  Include the file and version information (from above)}
  15. {                 in the problem description and send to:}
  16. {                     Internet:    apple.bugs@applelink.apple.com}
  17. {                     AppleLink:    APPLE.BUGS}
  18. { }
  19. {}
  20.  
  21. unit Movies;
  22. interface
  23.  
  24.  
  25. {$IFC UNDEFINED __MOVIES__}
  26. {$SETC __MOVIES__ := 1}
  27.  
  28.     uses
  29.         ConditionalMacros, Types, Quickdraw, Files, Aliases, Events, Menus, Components, QDOffscreen, Dialogs, StandardFile, ImageCompression;
  30.  
  31. { $PUSH}
  32. { $ALIGN MAC68K}
  33. { $LibExport+}
  34. {  "kFix1" is defined in FixMath as "fixed1"  }
  35. { error codes are in Errors.[haa] }
  36. { gestalt codes are in Gestalt.[hpa] }
  37.  
  38.     const
  39.         MovieFileType = 'MooV';
  40.  
  41.         MediaHandlerType = 'mhlr';
  42.         DataHandlerType = 'dhlr';
  43.  
  44.         VideoMediaType = 'vide';
  45.         SoundMediaType = 'soun';
  46.         TextMediaType = 'text';
  47.         BaseMediaType = 'gnrc';
  48.         MPEGMediaType = 'MPEG';
  49.         MusicMediaType = 'musi';
  50.         TimeCodeMediaType = 'tmcd';
  51.         HandleDataHandlerSubType = 'hndl';
  52.  
  53.         VisualMediaCharacteristic = 'eyes';
  54.         AudioMediaCharacteristic = 'ears';
  55.  
  56.         DoTheRightThing = 0;
  57.  
  58.  
  59.     type
  60.         MovieRecord = record
  61.                 data: array[0..0] of LONGINT;
  62.             end;
  63.  
  64.         Movie = ^MovieRecord;
  65.  
  66.         TrackRecord = record
  67.                 data: array[0..0] of LONGINT;
  68.             end;
  69.  
  70.         Track = ^TrackRecord;
  71.  
  72.         MediaRecord = record
  73.                 data: array[0..0] of LONGINT;
  74.             end;
  75.  
  76.         Media = ^MediaRecord;
  77.  
  78.         UserDataRecord = record
  79.                 data: array[0..0] of LONGINT;
  80.             end;
  81.  
  82.         UserData = ^UserDataRecord;
  83.  
  84.         TrackEditStateRecord = record
  85.                 data: array[0..0] of LONGINT;
  86.             end;
  87.  
  88.         TrackEditState = ^TrackEditStateRecord;
  89.  
  90.         MovieEditStateRecord = record
  91.                 data: array[0..0] of LONGINT;
  92.             end;
  93.  
  94.         MovieEditState = ^MovieEditStateRecord;
  95.  
  96.         SampleDescription = record
  97.                 descSize: LONGINT;
  98.                 dataFormat: LONGINT;
  99.                 resvd1: LONGINT;
  100.                 resvd2: INTEGER;
  101.                 dataRefIndex: INTEGER;
  102.             end;
  103.  
  104.         SampleDescriptionPtr = ^SampleDescription;
  105.         SampleDescriptionHandle = ^SampleDescriptionPtr;
  106.  
  107.         SoundDescription = record
  108.                 descSize: LONGINT;                                { total size of SoundDescription including extra data }
  109.                 dataFormat: LONGINT;                                {  }
  110.                 resvd1: LONGINT;                                { reserved for apple use }
  111.                 resvd2: INTEGER;
  112.                 dataRefIndex: INTEGER;
  113.                 version: INTEGER;                                { which version is this data }
  114.                 revlevel: INTEGER;                                { what version of that codec did this }
  115.                 vendor: LONGINT;                                { whose  codec compressed this data }
  116.                 numChannels: INTEGER;                                { number of channels of sound }
  117.                 sampleSize: INTEGER;                                { number of bits per sample }
  118.                 compressionID: INTEGER;                                { sound compression used, 0 if none }
  119.                 packetSize: INTEGER;                                { packet size for compression, 0 if no compression }
  120.                 sampleRate: Fixed;                                    { sample rate sound is captured at }
  121.             end;
  122.  
  123.         SoundDescriptionPtr = ^SoundDescription;
  124.         SoundDescriptionHandle = ^SoundDescriptionPtr;
  125.  
  126.         TextDescription = record
  127.                 descSize: LONGINT;                                { Total size of TextDescription}
  128.                 dataFormat: LONGINT;                                { 'text'}
  129.                 resvd1: LONGINT;
  130.                 resvd2: INTEGER;
  131.                 dataRefIndex: INTEGER;
  132.                 displayFlags: LONGINT;                                { see enum below for flag values}
  133.                 textJustification: LONGINT;                                { Can be: teCenter,teFlush -Default,-Right,-Left}
  134.                 bgColor: RGBColor;                                { Background color}
  135.                 defaultTextBox: Rect;                                    { Location to place the text within the track bounds}
  136.                 defaultStyle: ScrpSTElement;                            { Default style (struct defined in TextEdit.h)}
  137.                 defaultFontName: packed array[0..0] of CHAR;            { Font Name (pascal string - struct extended to fit) }
  138.             end;
  139.  
  140.         TextDescriptionPtr = ^TextDescription;
  141.         TextDescriptionHandle = ^TextDescriptionPtr;
  142.  
  143. {--------------------------}
  144. {  Music Sample Description}
  145. {--------------------------}
  146.         MusicDescription = record
  147.                 descSize: LONGINT;
  148.                 dataFormat: LONGINT;                                { 'musi' }
  149.                 resvd1: LONGINT;
  150.                 resvd2: INTEGER;
  151.                 dataRefIndex: INTEGER;
  152.                 musicFlags: LONGINT;
  153.                 headerData: array[0..0] of LONGINT;                { variable size! }
  154.             end;
  155.  
  156.         MusicDescriptionPtr = ^MusicDescription;
  157.  
  158.         MusicDescriptionHandle = ^MusicDescriptionPtr;
  159.  
  160.  
  161.     const
  162.         dfDontDisplay = $1;                    { Don't display the text}
  163.         dfDontAutoScale = $2;                    { Don't scale text as track bounds grows or shrinks}
  164.         dfClipToTextBox = $4;                    { Clip update to the textbox}
  165.         dfUseMovieBGColor = $8;                    { Set text background to movie's background color}
  166.         dfShrinkTextBoxToFit = $10;                    { Compute minimum box to fit the sample}
  167.         dfScrollIn = $20;                    { Scroll text in until last of text is in view }
  168.         dfScrollOut = $40;                    { Scroll text out until last of text is gone (if both set, scroll in then out)}
  169.         dfHorizScroll = $80;                    { Scroll text horizontally (otherwise it's vertical)}
  170.         dfReverseScroll = $100;                    { vert: scroll down rather than up; horiz: scroll backwards (justfication dependent)}
  171.         dfContinuousScroll = $200;                    { new samples cause previous samples to scroll out }
  172.         dfFlowHoriz = $400;                { horiz scroll text flows in textbox rather than extend to right }
  173.         dfDropShadow = $1000;                { display text with a drop shadow }
  174.         dfAntiAlias = $2000;                { attempt to display text anti aliased}
  175.         dfKeyedText = $4000;                { key the text over background}
  176.         dfInverseHilite = $8000;                { Use inverse hiliting rather than using hilite color}
  177.  
  178.         searchTextDontGoToFoundTime = $10000;
  179.         searchTextDontHiliteFoundText = $20000;
  180.         searchTextOneTrackOnly = $40000;
  181.         searchTextEnabledTracksOnly = $80000;
  182.  
  183. { progress messages }
  184.         movieProgressOpen = 0;
  185.         movieProgressUpdatePercent = 1;
  186.         movieProgressClose = 2;
  187.  
  188. { progress operations }
  189.         progressOpFlatten = 1;
  190.         progressOpInsertTrackSegment = 2;
  191.         progressOpInsertMovieSegment = 3;
  192.         progressOpPaste = 4;
  193.         progressOpAddMovieSelection = 5;
  194.         progressOpCopy = 6;
  195.         progressOpCut = 7;
  196.         progressOpLoadMovieIntoRam = 8;
  197.         progressOpLoadTrackIntoRam = 9;
  198.         progressOpLoadMediaIntoRam = 10;
  199.         progressOpImportMovie = 11;
  200.         progressOpExportMovie = 12;
  201.  
  202.         mediaQualityDraft = $0000;
  203.         mediaQualityNormal = $0040;
  204.         mediaQualityBetter = $0080;
  205.         mediaQualityBest = $00C0;
  206.  
  207.     type
  208.         MovieRgnCoverProcPtr = ProcPtr;  { FUNCTION MovieRgnCover(theMovie: Movie; changedRgn: RgnHandle; refcon: LONGINT): OSErr; }
  209.         MovieProgressProcPtr = ProcPtr;  { FUNCTION MovieProgress(theMovie: Movie; message: INTEGER; whatOperation: INTEGER; percentDone: Fixed; refcon: LONGINT): OSErr; }
  210.         MovieDrawingCompleteProcPtr = ProcPtr;  { FUNCTION MovieDrawingComplete(theMovie: Movie; refCon: LONGINT): OSErr; }
  211.         TrackTransferProcPtr = ProcPtr;  { FUNCTION TrackTransfer(t: Track; refCon: LONGINT): OSErr; }
  212.         GetMovieProcPtr = ProcPtr;  { FUNCTION GetMovie(offset: LONGINT; size: LONGINT; dataPtr: UNIV Ptr; refCon: UNIV Ptr): OSErr; }
  213.         MoviePreviewCallOutProcPtr = ProcPtr;  { FUNCTION MoviePreviewCallOut(refcon: LONGINT): BOOLEAN; }
  214.         MoviesErrorProcPtr = ProcPtr;  { PROCEDURE MoviesError(theErr: OSErr; refcon: LONGINT); }
  215.         TextMediaProcPtr = ProcPtr;  { FUNCTION TextMedia(theText: Handle; theMovie: Movie; VAR displayFlag: INTEGER; refcon: LONGINT): OSErr; }
  216.         MovieRgnCoverUPP = UniversalProcPtr;
  217.         MovieProgressUPP = UniversalProcPtr;
  218.         MovieDrawingCompleteUPP = UniversalProcPtr;
  219.         TrackTransferUPP = UniversalProcPtr;
  220.         GetMovieUPP = UniversalProcPtr;
  221.         MoviePreviewCallOutUPP = UniversalProcPtr;
  222.         MoviesErrorUPP = UniversalProcPtr;
  223.         TextMediaUPP = UniversalProcPtr;
  224.  
  225.         MediaHandler = ComponentInstance;
  226.         DataHandler = ComponentInstance;
  227.  
  228.         MediaHandlerComponent = Component;
  229.         DataHandlerComponent = Component;
  230.  
  231.         HandlerError = ComponentResult;
  232.  
  233.         TimeValue = LONGINT;
  234.  
  235.         TimeScale = LONGINT;
  236.  
  237.         CompTimeValue = wide;
  238.  
  239.  
  240.     const
  241.         loopTimeBase = 1;
  242.         palindromeLoopTimeBase = 2;
  243.         maintainTimeBaseZero = 4;
  244.  
  245.  
  246.     type
  247.         TimeBaseFlags = LONGINT;
  248.  
  249.         TimeBaseRecord = record
  250.                 data: array[0..0] of LONGINT;
  251.             end;
  252.  
  253.         TimeBase = ^TimeBaseRecord;
  254.  
  255.         CallBackRecord = record
  256.                 data: array[0..0] of LONGINT;
  257.             end;
  258.  
  259.         QTCallBack = ^CallBackRecord;
  260.  
  261.         TimeRecord = record
  262.                 value: CompTimeValue;                            { units }
  263.                 scale: TimeScale;                                { units per second }
  264.                 base: TimeBase;
  265.             end;
  266.  
  267. { CallBack equates }
  268.  
  269.     const
  270.         triggerTimeFwd = $0001;                        { when curTime exceeds triggerTime going forward }
  271.         triggerTimeBwd = $0002;                        { when curTime exceeds triggerTime going backwards }
  272.         triggerTimeEither = $0003;                        { when curTime exceeds triggerTime going either direction }
  273.         triggerRateLT = $0004;                        { when rate changes to less than trigger value }
  274.         triggerRateGT = $0008;                        { when rate changes to greater than trigger value }
  275.         triggerRateEqual = $0010;                        { when rate changes to equal trigger value }
  276.         triggerRateLTE = $14;
  277.         triggerRateGTE = $18;
  278.         triggerRateNotEqual = $1C;
  279.         triggerRateChange = 0;
  280.         triggerAtStart = $0001;
  281.         triggerAtStop = $0002;
  282.  
  283.  
  284.     type
  285.         QTCallBackFlags = INTEGER;
  286.  
  287.  
  288.     const
  289.         timeBaseBeforeStartTime = 1;
  290.         timeBaseAfterStopTime = 2;
  291.  
  292.  
  293.     type
  294.         TimeBaseStatus = LONGINT;
  295.  
  296.  
  297.     const
  298.         callBackAtTime = 1;
  299.         callBackAtRate = 2;
  300.         callBackAtTimeJump = 3;
  301.         callBackAtExtremes = 4;
  302.         callBackAtInterrupt = $8000;
  303.         callBackAtDeferredTask = $4000;
  304.  
  305.  
  306.     type
  307.         QTCallBackType = INTEGER;
  308.  
  309.         QTCallBackProcPtr = ProcPtr;  { PROCEDURE QTCallBack(cb: QTCallBack; refCon: LONGINT); }
  310.         QTCallBackUPP = UniversalProcPtr;
  311.  
  312.  
  313.     const
  314.         qtcbNeedsRateChanges = 1;                            { wants to know about rate changes }
  315.         qtcbNeedsTimeChanges = 2;                            { wants to know about time changes }
  316.         qtcbNeedsStartStopChanges = 4;                            { wants to know when TimeBase start/stop is changed}
  317.  
  318.  
  319.     type
  320.         QTCallBackHeader = record
  321.                 callBackFlags: LONGINT;
  322.                 reserved1: LONGINT;
  323.                 qtPrivate: array[0..39] of SInt8;
  324.             end;
  325.  
  326.         QTSyncTaskProcPtr = ProcPtr;  { PROCEDURE QTSyncTask(task: UNIV Ptr); }
  327.         QTSyncTaskUPP = UniversalProcPtr;
  328.  
  329.         QTSyncTaskRecord = record
  330.                 qLink: Ptr;
  331.                 proc: QTSyncTaskUPP;
  332.             end;
  333.  
  334.         QTSyncTaskPtr = ^QTSyncTaskRecord;
  335.  
  336.  
  337.     const
  338.         keepInRam = $1;                    { load and make non-purgable}
  339.         unkeepInRam = $2;                    { mark as purgable}
  340.         flushFromRam = $4;                    { empty those handles}
  341.         loadForwardTrackEdits = $8;                    {    load track edits into ram for playing forward}
  342.         loadBackwardTrackEdits = $10;                    {    load track edits into ram for playing in reverse}
  343.  
  344.         newMovieActive = $1;
  345.         newMovieDontResolveDataRefs = $2;
  346.         newMovieDontAskUnresolvedDataRefs = $4;
  347.         newMovieDontAutoAlternates = $8;
  348.  
  349. { track usage bits }
  350.         trackUsageInMovie = $2;
  351.         trackUsageInPreview = $4;
  352.         trackUsageInPoster = $8;
  353.  
  354. { Add/GetMediaSample flags }
  355.         mediaSampleNotSync = $1;                    { sample is not a sync sample (eg. is frame differenced }
  356.         mediaSampleShadowSync = $2;                    { sample is a shadow sync }
  357.  
  358.         pasteInParallel = 1;
  359.         showUserSettingsDialog = 2;
  360.         movieToFileOnlyExport = 4;
  361.  
  362.         nextTimeMediaSample = $1;
  363.         nextTimeMediaEdit = $2;
  364.         nextTimeTrackEdit = $4;
  365.         nextTimeSyncSample = $8;
  366.         nextTimeEdgeOK = $4000;
  367.         nextTimeIgnoreActiveSegment = $8000;
  368.  
  369.  
  370.     type
  371.         nextTimeFlagsEnum = INTEGER;
  372.  
  373.  
  374.     const
  375.         createMovieFileDeleteCurFile = $80000000;
  376.         createMovieFileDontCreateMovie = $40000000;
  377.         createMovieFileDontOpenFile = $20000000;
  378.  
  379.  
  380.     type
  381.         createMovieFileFlagsEnum = LONGINT;
  382.  
  383.  
  384.     const
  385.         flattenAddMovieToDataFork = $1;
  386.         flattenActiveTracksOnly = $4;
  387.         flattenDontInterleaveFlatten = $8;
  388.  
  389.  
  390.     type
  391.         movieFlattenFlagsEnum = LONGINT;
  392.  
  393.  
  394.     const
  395.         movieInDataForkResID = -1;                            { magic res ID }
  396.  
  397.         mcTopLeftMovie = $1;                    { usually centered }
  398.         mcScaleMovieToFit = $2;                    { usually only scales down }
  399.         mcWithBadge = $4;                    { give me a badge }
  400.         mcNotVisible = $8;                    { don't show controller }
  401.         mcWithFrame = $10;                    { gimme a frame }
  402.  
  403.         movieScrapDontZeroScrap = $1;
  404.         movieScrapOnlyPutMovie = $2;
  405.  
  406.         dataRefSelfReference = $1;
  407.         dataRefWasNotResolved = $2;
  408.  
  409.  
  410.     type
  411.         dataRefAttributesFlags = LONGINT;
  412.  
  413.  
  414.     const
  415.         hintsScrubMode = $1;                    { mask == && (if flags == scrub on, flags != scrub off) }
  416.         hintsLoop = $2;
  417.         hintsDontPurge = $4;
  418.         hintsUseScreenBuffer = $20;
  419.         hintsAllowInterlace = $40;
  420.         hintsUseSoundInterp = $80;
  421.         hintsHighQuality = $100;                    { slooooow }
  422.         hintsPalindrome = $200;
  423.         hintsInactive = $800;
  424.  
  425.  
  426.     type
  427.         playHintsEnum = LONGINT;
  428.  
  429.  
  430.     const
  431.         mediaHandlerFlagBaseClient = 1;
  432.  
  433.  
  434.     type
  435.         mediaHandlerFlagsEnum = LONGINT;
  436.  
  437.  
  438.     const
  439.         movieTrackMediaType = $1;
  440.         movieTrackCharacteristic = $2;
  441.         movieTrackEnabledOnly = $4;
  442.  
  443.  
  444.     type
  445.         SampleReferenceRecord = record
  446.                 dataOffset: LONGINT;
  447.                 dataSize: LONGINT;
  448.                 durationPerSample: TimeValue;
  449.                 numberOfSamples: LONGINT;
  450.                 sampleFlags: INTEGER;
  451.             end;
  452.  
  453.         SampleReferencePtr = ^SampleReferenceRecord;
  454.  
  455. {************************}
  456. {* Initialization Routines }
  457. {*************************}
  458.  
  459.     function EnterMovies: OSErr;
  460.     {$IFC NOT GENERATINGCFM}
  461.     inline
  462.         $7001, $AAAA;
  463.     {$ENDC}
  464.     procedure ExitMovies;
  465.     {$IFC NOT GENERATINGCFM}
  466.     inline
  467.         $7002, $AAAA;
  468.     {$ENDC}
  469. {************************}
  470. {* Error Routines }
  471. {*************************}
  472.     function GetMoviesError: OSErr;
  473.     {$IFC NOT GENERATINGCFM}
  474.     inline
  475.         $7003, $AAAA;
  476.     {$ENDC}
  477.     procedure ClearMoviesStickyError;
  478.     {$IFC NOT GENERATINGCFM}
  479.     inline
  480.         $303C, $DE, $AAAA;
  481.     {$ENDC}
  482.     function GetMoviesStickyError: OSErr;
  483.     {$IFC NOT GENERATINGCFM}
  484.     inline
  485.         $7004, $AAAA;
  486.     {$ENDC}
  487.     procedure SetMoviesErrorProc (errProc: MoviesErrorUPP; refcon: LONGINT);
  488.     {$IFC NOT GENERATINGCFM}
  489.     inline
  490.         $303C, $EF, $AAAA;
  491.     {$ENDC}
  492. {************************}
  493. {* Idle Routines }
  494. {*************************}
  495.     procedure MoviesTask (theMovie: Movie; maxMilliSecToUse: LONGINT);
  496.     {$IFC NOT GENERATINGCFM}
  497.     inline
  498.         $7005, $AAAA;
  499.     {$ENDC}
  500.     function PrerollMovie (theMovie: Movie; time: TimeValue; Rate: Fixed): OSErr;
  501.     {$IFC NOT GENERATINGCFM}
  502.     inline
  503.         $7006, $AAAA;
  504.     {$ENDC}
  505.     function LoadMovieIntoRam (theMovie: Movie; time: TimeValue; duration: TimeValue; flags: LONGINT): OSErr;
  506.     {$IFC NOT GENERATINGCFM}
  507.     inline
  508.         $7007, $AAAA;
  509.     {$ENDC}
  510.     function LoadTrackIntoRam (theTrack: Track; time: TimeValue; duration: TimeValue; flags: LONGINT): OSErr;
  511.     {$IFC NOT GENERATINGCFM}
  512.     inline
  513.         $303C, $16E, $AAAA;
  514.     {$ENDC}
  515.     function LoadMediaIntoRam (theMedia: Media; time: TimeValue; duration: TimeValue; flags: LONGINT): OSErr;
  516.     {$IFC NOT GENERATINGCFM}
  517.     inline
  518.         $7008, $AAAA;
  519.     {$ENDC}
  520.     procedure SetMovieActive (theMovie: Movie; active: BOOLEAN);
  521.     {$IFC NOT GENERATINGCFM}
  522.     inline
  523.         $7009, $AAAA;
  524.     {$ENDC}
  525.     function GetMovieActive (theMovie: Movie): BOOLEAN;
  526.     {$IFC NOT GENERATINGCFM}
  527.     inline
  528.         $700A, $AAAA;
  529.     {$ENDC}
  530. {************************}
  531. {* calls for playing movies, previews, posters}
  532. {*************************}
  533.     procedure StartMovie (theMovie: Movie);
  534.     {$IFC NOT GENERATINGCFM}
  535.     inline
  536.         $700B, $AAAA;
  537.     {$ENDC}
  538.     procedure StopMovie (theMovie: Movie);
  539.     {$IFC NOT GENERATINGCFM}
  540.     inline
  541.         $700C, $AAAA;
  542.     {$ENDC}
  543.     procedure GoToBeginningOfMovie (theMovie: Movie);
  544.     {$IFC NOT GENERATINGCFM}
  545.     inline
  546.         $700D, $AAAA;
  547.     {$ENDC}
  548.     procedure GoToEndOfMovie (theMovie: Movie);
  549.     {$IFC NOT GENERATINGCFM}
  550.     inline
  551.         $700E, $AAAA;
  552.     {$ENDC}
  553.     function IsMovieDone (theMovie: Movie): BOOLEAN;
  554.     {$IFC NOT GENERATINGCFM}
  555.     inline
  556.         $303C, $DD, $AAAA;
  557.     {$ENDC}
  558.     function GetMoviePreviewMode (theMovie: Movie): BOOLEAN;
  559.     {$IFC NOT GENERATINGCFM}
  560.     inline
  561.         $700F, $AAAA;
  562.     {$ENDC}
  563.     procedure SetMoviePreviewMode (theMovie: Movie; usePreview: BOOLEAN);
  564.     {$IFC NOT GENERATINGCFM}
  565.     inline
  566.         $7010, $AAAA;
  567.     {$ENDC}
  568.     procedure ShowMoviePoster (theMovie: Movie);
  569.     {$IFC NOT GENERATINGCFM}
  570.     inline
  571.         $7011, $AAAA;
  572.     {$ENDC}
  573.     procedure PlayMoviePreview (theMovie: Movie; callOutProc: MoviePreviewCallOutUPP; refcon: LONGINT);
  574.     {$IFC NOT GENERATINGCFM}
  575.     inline
  576.         $303C, $F2, $AAAA;
  577.     {$ENDC}
  578. {************************}
  579. {* calls for controlling movies & tracks which are playing}
  580. {*************************}
  581.     function GetMovieTimeBase (theMovie: Movie): TimeBase;
  582.     {$IFC NOT GENERATINGCFM}
  583.     inline
  584.         $7012, $AAAA;
  585.     {$ENDC}
  586.     procedure SetMovieMasterTimeBase (theMovie: Movie; tb: TimeBase; {CONST}
  587.                                     var slaveZero: TimeRecord);
  588.     {$IFC NOT GENERATINGCFM}
  589.     inline
  590.         $303C, $167, $AAAA;
  591.     {$ENDC}
  592.     procedure SetMovieMasterClock (theMovie: Movie; clockMeister: Component; {CONST}
  593.                                     var slaveZero: TimeRecord);
  594.     {$IFC NOT GENERATINGCFM}
  595.     inline
  596.         $303C, $168, $AAAA;
  597.     {$ENDC}
  598.     procedure GetMovieGWorld (theMovie: Movie; var port: CGrafPtr; var gdh: GDHandle);
  599.     {$IFC NOT GENERATINGCFM}
  600.     inline
  601.         $7015, $AAAA;
  602.     {$ENDC}
  603.     procedure SetMovieGWorld (theMovie: Movie; port: CGrafPtr; gdh: GDHandle);
  604.     {$IFC NOT GENERATINGCFM}
  605.     inline
  606.         $7016, $AAAA;
  607.     {$ENDC}
  608.  
  609.     const
  610.         movieDrawingCallWhenChanged = 0;
  611.         movieDrawingCallAlways = 1;
  612.  
  613.  
  614.     procedure SetMovieDrawingCompleteProc (theMovie: Movie; flags: LONGINT; proc: MovieDrawingCompleteUPP; refCon: LONGINT);
  615.     {$IFC NOT GENERATINGCFM}
  616.     inline
  617.         $303C, $1DE, $AAAA;
  618.     {$ENDC}
  619.     function GetNextTrackForCompositing (theMovie: Movie; theTrack: Track): Track;
  620.     {$IFC NOT GENERATINGCFM}
  621.     inline
  622.         $303C, $1FA, $AAAA;
  623.     {$ENDC}
  624.     function GetPrevTrackForCompositing (theMovie: Movie; theTrack: Track): Track;
  625.     {$IFC NOT GENERATINGCFM}
  626.     inline
  627.         $303C, $1FB, $AAAA;
  628.     {$ENDC}
  629.     procedure SetTrackGWorld (theTrack: Track; port: CGrafPtr; gdh: GDHandle; proc: TrackTransferUPP; refCon: LONGINT);
  630.     {$IFC NOT GENERATINGCFM}
  631.     inline
  632.         $303C, $9D, $AAAA;
  633.     {$ENDC}
  634.     function GetMoviePict (theMovie: Movie; time: TimeValue): PicHandle;
  635.     {$IFC NOT GENERATINGCFM}
  636.     inline
  637.         $701D, $AAAA;
  638.     {$ENDC}
  639.     function GetTrackPict (theTrack: Track; time: TimeValue): PicHandle;
  640.     {$IFC NOT GENERATINGCFM}
  641.     inline
  642.         $701E, $AAAA;
  643.     {$ENDC}
  644.     function GetMoviePosterPict (theMovie: Movie): PicHandle;
  645.     {$IFC NOT GENERATINGCFM}
  646.     inline
  647.         $303C, $F7, $AAAA;
  648.     {$ENDC}
  649. { called between Begin & EndUpdate }
  650.     function UpdateMovie (theMovie: Movie): OSErr;
  651.     {$IFC NOT GENERATINGCFM}
  652.     inline
  653.         $701F, $AAAA;
  654.     {$ENDC}
  655. {*** spatial movie routines ***}
  656.     procedure GetMovieBox (theMovie: Movie; var boxRect: Rect);
  657.     {$IFC NOT GENERATINGCFM}
  658.     inline
  659.         $303C, $F9, $AAAA;
  660.     {$ENDC}
  661.     procedure SetMovieBox (theMovie: Movie; {CONST}
  662.                                     var boxRect: Rect);
  663.     {$IFC NOT GENERATINGCFM}
  664.     inline
  665.         $303C, $FA, $AAAA;
  666.     {$ENDC}
  667. {* movie display clip }
  668.     function GetMovieDisplayClipRgn (theMovie: Movie): RgnHandle;
  669.     {$IFC NOT GENERATINGCFM}
  670.     inline
  671.         $303C, $FC, $AAAA;
  672.     {$ENDC}
  673.     procedure SetMovieDisplayClipRgn (theMovie: Movie; theClip: RgnHandle);
  674.     {$IFC NOT GENERATINGCFM}
  675.     inline
  676.         $303C, $FD, $AAAA;
  677.     {$ENDC}
  678. {* movie src clip }
  679.     function GetMovieClipRgn (theMovie: Movie): RgnHandle;
  680.     {$IFC NOT GENERATINGCFM}
  681.     inline
  682.         $303C, $100, $AAAA;
  683.     {$ENDC}
  684.     procedure SetMovieClipRgn (theMovie: Movie; theClip: RgnHandle);
  685.     {$IFC NOT GENERATINGCFM}
  686.     inline
  687.         $303C, $101, $AAAA;
  688.     {$ENDC}
  689. {* track src clip }
  690.     function GetTrackClipRgn (theTrack: Track): RgnHandle;
  691.     {$IFC NOT GENERATINGCFM}
  692.     inline
  693.         $303C, $102, $AAAA;
  694.     {$ENDC}
  695.     procedure SetTrackClipRgn (theTrack: Track; theClip: RgnHandle);
  696.     {$IFC NOT GENERATINGCFM}
  697.     inline
  698.         $303C, $103, $AAAA;
  699.     {$ENDC}
  700. {* bounds in display space (not clipped by display clip) }
  701.     function GetMovieDisplayBoundsRgn (theMovie: Movie): RgnHandle;
  702.     {$IFC NOT GENERATINGCFM}
  703.     inline
  704.         $303C, $FB, $AAAA;
  705.     {$ENDC}
  706.     function GetTrackDisplayBoundsRgn (theTrack: Track): RgnHandle;
  707.     {$IFC NOT GENERATINGCFM}
  708.     inline
  709.         $303C, $112, $AAAA;
  710.     {$ENDC}
  711. {* bounds in movie space }
  712.     function GetMovieBoundsRgn (theMovie: Movie): RgnHandle;
  713.     {$IFC NOT GENERATINGCFM}
  714.     inline
  715.         $303C, $FE, $AAAA;
  716.     {$ENDC}
  717.     function GetTrackMovieBoundsRgn (theTrack: Track): RgnHandle;
  718.     {$IFC NOT GENERATINGCFM}
  719.     inline
  720.         $303C, $FF, $AAAA;
  721.     {$ENDC}
  722. {* bounds in track space }
  723.     function GetTrackBoundsRgn (theTrack: Track): RgnHandle;
  724.     {$IFC NOT GENERATINGCFM}
  725.     inline
  726.         $303C, $111, $AAAA;
  727.     {$ENDC}
  728. {* mattes - always in track space }
  729.     function GetTrackMatte (theTrack: Track): PixMapHandle;
  730.     {$IFC NOT GENERATINGCFM}
  731.     inline
  732.         $303C, $115, $AAAA;
  733.     {$ENDC}
  734.     procedure SetTrackMatte (theTrack: Track; theMatte: PixMapHandle);
  735.     {$IFC NOT GENERATINGCFM}
  736.     inline
  737.         $303C, $116, $AAAA;
  738.     {$ENDC}
  739.     procedure DisposeMatte (theMatte: PixMapHandle);
  740.     {$IFC NOT GENERATINGCFM}
  741.     inline
  742.         $303C, $14A, $AAAA;
  743.     {$ENDC}
  744. {************************}
  745. {* calls for getting/saving movies}
  746. {*************************}
  747.     function NewMovie (flags: LONGINT): Movie;
  748.     {$IFC NOT GENERATINGCFM}
  749.     inline
  750.         $303C, $187, $AAAA;
  751.     {$ENDC}
  752.     function PutMovieIntoHandle (theMovie: Movie; publicMovie: Handle): OSErr;
  753.     {$IFC NOT GENERATINGCFM}
  754.     inline
  755.         $7022, $AAAA;
  756.     {$ENDC}
  757.     function PutMovieIntoDataFork (theMovie: Movie; fRefNum: INTEGER; offset: LONGINT; maxSize: LONGINT): OSErr;
  758.     {$IFC NOT GENERATINGCFM}
  759.     inline
  760.         $303C, $1B4, $AAAA;
  761.     {$ENDC}
  762.     procedure DisposeMovie (theMovie: Movie);
  763.     {$IFC NOT GENERATINGCFM}
  764.     inline
  765.         $7023, $AAAA;
  766.     {$ENDC}
  767. {************************}
  768. {* Movie State Routines}
  769. {*************************}
  770.     function GetMovieCreationTime (theMovie: Movie): LONGINT;
  771.     {$IFC NOT GENERATINGCFM}
  772.     inline
  773.         $7026, $AAAA;
  774.     {$ENDC}
  775.     function GetMovieModificationTime (theMovie: Movie): LONGINT;
  776.     {$IFC NOT GENERATINGCFM}
  777.     inline
  778.         $7027, $AAAA;
  779.     {$ENDC}
  780.     function GetMovieTimeScale (theMovie: Movie): TimeScale;
  781.     {$IFC NOT GENERATINGCFM}
  782.     inline
  783.         $7029, $AAAA;
  784.     {$ENDC}
  785.     procedure SetMovieTimeScale (theMovie: Movie; time_Scale: TimeScale);
  786.     {$IFC NOT GENERATINGCFM}
  787.     inline
  788.         $702A, $AAAA;
  789.     {$ENDC}
  790.     function GetMovieDuration (theMovie: Movie): TimeValue;
  791.     {$IFC NOT GENERATINGCFM}
  792.     inline
  793.         $702B, $AAAA;
  794.     {$ENDC}
  795.     function GetMovieRate (theMovie: Movie): Fixed;
  796.     {$IFC NOT GENERATINGCFM}
  797.     inline
  798.         $702C, $AAAA;
  799.     {$ENDC}
  800.     procedure SetMovieRate (theMovie: Movie; rate: Fixed);
  801.     {$IFC NOT GENERATINGCFM}
  802.     inline
  803.         $702D, $AAAA;
  804.     {$ENDC}
  805.     function GetMoviePreferredRate (theMovie: Movie): Fixed;
  806.     {$IFC NOT GENERATINGCFM}
  807.     inline
  808.         $303C, $F3, $AAAA;
  809.     {$ENDC}
  810.     procedure SetMoviePreferredRate (theMovie: Movie; rate: Fixed);
  811.     {$IFC NOT GENERATINGCFM}
  812.     inline
  813.         $303C, $F4, $AAAA;
  814.     {$ENDC}
  815.     function GetMoviePreferredVolume (theMovie: Movie): INTEGER;
  816.     {$IFC NOT GENERATINGCFM}
  817.     inline
  818.         $303C, $F5, $AAAA;
  819.     {$ENDC}
  820.     procedure SetMoviePreferredVolume (theMovie: Movie; volume: INTEGER);
  821.     {$IFC NOT GENERATINGCFM}
  822.     inline
  823.         $303C, $F6, $AAAA;
  824.     {$ENDC}
  825.     function GetMovieVolume (theMovie: Movie): INTEGER;
  826.     {$IFC NOT GENERATINGCFM}
  827.     inline
  828.         $702E, $AAAA;
  829.     {$ENDC}
  830.     procedure SetMovieVolume (theMovie: Movie; volume: INTEGER);
  831.     {$IFC NOT GENERATINGCFM}
  832.     inline
  833.         $702F, $AAAA;
  834.     {$ENDC}
  835.     procedure GetMovieMatrix (theMovie: Movie; var matrix: MatrixRecord);
  836.     {$IFC NOT GENERATINGCFM}
  837.     inline
  838.         $7031, $AAAA;
  839.     {$ENDC}
  840.     procedure SetMovieMatrix (theMovie: Movie; {CONST}
  841.                                     var matrix: MatrixRecord);
  842.     {$IFC NOT GENERATINGCFM}
  843.     inline
  844.         $7032, $AAAA;
  845.     {$ENDC}
  846.     procedure GetMoviePreviewTime (theMovie: Movie; var previewTime: TimeValue; var previewDuration: TimeValue);
  847.     {$IFC NOT GENERATINGCFM}
  848.     inline
  849.         $7033, $AAAA;
  850.     {$ENDC}
  851.     procedure SetMoviePreviewTime (theMovie: Movie; previewTime: TimeValue; previewDuration: TimeValue);
  852.     {$IFC NOT GENERATINGCFM}
  853.     inline
  854.         $7034, $AAAA;
  855.     {$ENDC}
  856.     function GetMoviePosterTime (theMovie: Movie): TimeValue;
  857.     {$IFC NOT GENERATINGCFM}
  858.     inline
  859.         $7035, $AAAA;
  860.     {$ENDC}
  861.     procedure SetMoviePosterTime (theMovie: Movie; posterTime: TimeValue);
  862.     {$IFC NOT GENERATINGCFM}
  863.     inline
  864.         $7036, $AAAA;
  865.     {$ENDC}
  866.     procedure GetMovieSelection (theMovie: Movie; var selectionTime: TimeValue; var selectionDuration: TimeValue);
  867.     {$IFC NOT GENERATINGCFM}
  868.     inline
  869.         $7037, $AAAA;
  870.     {$ENDC}
  871.     procedure SetMovieSelection (theMovie: Movie; selectionTime: TimeValue; selectionDuration: TimeValue);
  872.     {$IFC NOT GENERATINGCFM}
  873.     inline
  874.         $7038, $AAAA;
  875.     {$ENDC}
  876.     procedure SetMovieActiveSegment (theMovie: Movie; startTime: TimeValue; duration: TimeValue);
  877.     {$IFC NOT GENERATINGCFM}
  878.     inline
  879.         $303C, $15C, $AAAA;
  880.     {$ENDC}
  881.     procedure GetMovieActiveSegment (theMovie: Movie; var startTime: TimeValue; var duration: TimeValue);
  882.     {$IFC NOT GENERATINGCFM}
  883.     inline
  884.         $303C, $15D, $AAAA;
  885.     {$ENDC}
  886.     function GetMovieTime (theMovie: Movie; var currentTime: TimeRecord): TimeValue;
  887.     {$IFC NOT GENERATINGCFM}
  888.     inline
  889.         $7039, $AAAA;
  890.     {$ENDC}
  891.     procedure SetMovieTime (theMovie: Movie; {CONST}
  892.                                     var newtime: TimeRecord);
  893.     {$IFC NOT GENERATINGCFM}
  894.     inline
  895.         $703C, $AAAA;
  896.     {$ENDC}
  897.     procedure SetMovieTimeValue (theMovie: Movie; newtime: TimeValue);
  898.     {$IFC NOT GENERATINGCFM}
  899.     inline
  900.         $703D, $AAAA;
  901.     {$ENDC}
  902.     function GetMovieUserData (theMovie: Movie): UserData;
  903.     {$IFC NOT GENERATINGCFM}
  904.     inline
  905.         $703E, $AAAA;
  906.     {$ENDC}
  907. {************************}
  908. {* Track/Media finding routines}
  909. {*************************}
  910.     function GetMovieTrackCount (theMovie: Movie): LONGINT;
  911.     {$IFC NOT GENERATINGCFM}
  912.     inline
  913.         $703F, $AAAA;
  914.     {$ENDC}
  915.     function GetMovieTrack (theMovie: Movie; trackID: LONGINT): Track;
  916.     {$IFC NOT GENERATINGCFM}
  917.     inline
  918.         $7040, $AAAA;
  919.     {$ENDC}
  920.     function GetMovieIndTrack (theMovie: Movie; index: LONGINT): Track;
  921.     {$IFC NOT GENERATINGCFM}
  922.     inline
  923.         $303C, $117, $AAAA;
  924.     {$ENDC}
  925.     function GetMovieIndTrackType (theMovie: Movie; index: LONGINT; trackType: OSType; flags: LONGINT): Track;
  926.     {$IFC NOT GENERATINGCFM}
  927.     inline
  928.         $303C, $208, $AAAA;
  929.     {$ENDC}
  930.     function GetTrackID (theTrack: Track): LONGINT;
  931.     {$IFC NOT GENERATINGCFM}
  932.     inline
  933.         $303C, $127, $AAAA;
  934.     {$ENDC}
  935.     function GetTrackMovie (theTrack: Track): Movie;
  936.     {$IFC NOT GENERATINGCFM}
  937.     inline
  938.         $303C, $D0, $AAAA;
  939.     {$ENDC}
  940. {************************}
  941. {* Track creation routines}
  942. {*************************}
  943.     function NewMovieTrack (theMovie: Movie; width: Fixed; height: Fixed; trackVolume: INTEGER): Track;
  944.     {$IFC NOT GENERATINGCFM}
  945.     inline
  946.         $303C, $188, $AAAA;
  947.     {$ENDC}
  948.     procedure DisposeMovieTrack (theTrack: Track);
  949.     {$IFC NOT GENERATINGCFM}
  950.     inline
  951.         $7042, $AAAA;
  952.     {$ENDC}
  953. {************************}
  954. {* Track State routines}
  955. {*************************}
  956.     function GetTrackCreationTime (theTrack: Track): LONGINT;
  957.     {$IFC NOT GENERATINGCFM}
  958.     inline
  959.         $7043, $AAAA;
  960.     {$ENDC}
  961.     function GetTrackModificationTime (theTrack: Track): LONGINT;
  962.     {$IFC NOT GENERATINGCFM}
  963.     inline
  964.         $7044, $AAAA;
  965.     {$ENDC}
  966.     function GetTrackEnabled (theTrack: Track): BOOLEAN;
  967.     {$IFC NOT GENERATINGCFM}
  968.     inline
  969.         $7045, $AAAA;
  970.     {$ENDC}
  971.     procedure SetTrackEnabled (theTrack: Track; isEnabled: BOOLEAN);
  972.     {$IFC NOT GENERATINGCFM}
  973.     inline
  974.         $7046, $AAAA;
  975.     {$ENDC}
  976.     function GetTrackUsage (theTrack: Track): LONGINT;
  977.     {$IFC NOT GENERATINGCFM}
  978.     inline
  979.         $7047, $AAAA;
  980.     {$ENDC}
  981.     procedure SetTrackUsage (theTrack: Track; usage: LONGINT);
  982.     {$IFC NOT GENERATINGCFM}
  983.     inline
  984.         $7048, $AAAA;
  985.     {$ENDC}
  986.     function GetTrackDuration (theTrack: Track): TimeValue;
  987.     {$IFC NOT GENERATINGCFM}
  988.     inline
  989.         $704B, $AAAA;
  990.     {$ENDC}
  991.     function GetTrackOffset (theTrack: Track): TimeValue;
  992.     {$IFC NOT GENERATINGCFM}
  993.     inline
  994.         $704C, $AAAA;
  995.     {$ENDC}
  996.     procedure SetTrackOffset (theTrack: Track; movieOffsetTime: TimeValue);
  997.     {$IFC NOT GENERATINGCFM}
  998.     inline
  999.         $704D, $AAAA;
  1000.     {$ENDC}
  1001.     function GetTrackLayer (theTrack: Track): INTEGER;
  1002.     {$IFC NOT GENERATINGCFM}
  1003.     inline
  1004.         $7050, $AAAA;
  1005.     {$ENDC}
  1006.     procedure SetTrackLayer (theTrack: Track; layer: INTEGER);
  1007.     {$IFC NOT GENERATINGCFM}
  1008.     inline
  1009.         $7051, $AAAA;
  1010.     {$ENDC}
  1011.     function GetTrackAlternate (theTrack: Track): Track;
  1012.     {$IFC NOT GENERATINGCFM}
  1013.     inline
  1014.         $7052, $AAAA;
  1015.     {$ENDC}
  1016.     procedure SetTrackAlternate (theTrack: Track; alternateT: Track);
  1017.     {$IFC NOT GENERATINGCFM}
  1018.     inline
  1019.         $7053, $AAAA;
  1020.     {$ENDC}
  1021.     procedure SetAutoTrackAlternatesEnabled (theMovie: Movie; enable: BOOLEAN);
  1022.     {$IFC NOT GENERATINGCFM}
  1023.     inline
  1024.         $303C, $15E, $AAAA;
  1025.     {$ENDC}
  1026.     procedure SelectMovieAlternates (theMovie: Movie);
  1027.     {$IFC NOT GENERATINGCFM}
  1028.     inline
  1029.         $303C, $15F, $AAAA;
  1030.     {$ENDC}
  1031.     function GetTrackVolume (theTrack: Track): INTEGER;
  1032.     {$IFC NOT GENERATINGCFM}
  1033.     inline
  1034.         $7054, $AAAA;
  1035.     {$ENDC}
  1036.     procedure SetTrackVolume (theTrack: Track; volume: INTEGER);
  1037.     {$IFC NOT GENERATINGCFM}
  1038.     inline
  1039.         $7055, $AAAA;
  1040.     {$ENDC}
  1041.     procedure GetTrackMatrix (theTrack: Track; var matrix: MatrixRecord);
  1042.     {$IFC NOT GENERATINGCFM}
  1043.     inline
  1044.         $7056, $AAAA;
  1045.     {$ENDC}
  1046.     procedure SetTrackMatrix (theTrack: Track; {CONST}
  1047.                                     var matrix: MatrixRecord);
  1048.     {$IFC NOT GENERATINGCFM}
  1049.     inline
  1050.         $7057, $AAAA;
  1051.     {$ENDC}
  1052.     procedure GetTrackDimensions (theTrack: Track; var width: Fixed; var height: Fixed);
  1053.     {$IFC NOT GENERATINGCFM}
  1054.     inline
  1055.         $705D, $AAAA;
  1056.     {$ENDC}
  1057.     procedure SetTrackDimensions (theTrack: Track; width: Fixed; height: Fixed);
  1058.     {$IFC NOT GENERATINGCFM}
  1059.     inline
  1060.         $705E, $AAAA;
  1061.     {$ENDC}
  1062.     function GetTrackUserData (theTrack: Track): UserData;
  1063.     {$IFC NOT GENERATINGCFM}
  1064.     inline
  1065.         $705F, $AAAA;
  1066.     {$ENDC}
  1067. {************************}
  1068. {* get Media routines}
  1069. {*************************}
  1070.     function NewTrackMedia (theTrack: Track; mediaType: OSType; time_Scale: TimeScale; dataRef: Handle; dataRefType: OSType): Media;
  1071.     {$IFC NOT GENERATINGCFM}
  1072.     inline
  1073.         $303C, $18E, $AAAA;
  1074.     {$ENDC}
  1075.     procedure DisposeTrackMedia (theMedia: Media);
  1076.     {$IFC NOT GENERATINGCFM}
  1077.     inline
  1078.         $7061, $AAAA;
  1079.     {$ENDC}
  1080.     function GetTrackMedia (theTrack: Track): Media;
  1081.     {$IFC NOT GENERATINGCFM}
  1082.     inline
  1083.         $7062, $AAAA;
  1084.     {$ENDC}
  1085.     function GetMediaTrack (theMedia: Media): Track;
  1086.     {$IFC NOT GENERATINGCFM}
  1087.     inline
  1088.         $303C, $C5, $AAAA;
  1089.     {$ENDC}
  1090. {************************}
  1091. {* Media State routines}
  1092. {*************************}
  1093.     function GetMediaCreationTime (theMedia: Media): LONGINT;
  1094.     {$IFC NOT GENERATINGCFM}
  1095.     inline
  1096.         $7066, $AAAA;
  1097.     {$ENDC}
  1098.     function GetMediaModificationTime (theMedia: Media): LONGINT;
  1099.     {$IFC NOT GENERATINGCFM}
  1100.     inline
  1101.         $7067, $AAAA;
  1102.     {$ENDC}
  1103.     function GetMediaTimeScale (theMedia: Media): TimeScale;
  1104.     {$IFC NOT GENERATINGCFM}
  1105.     inline
  1106.         $7068, $AAAA;
  1107.     {$ENDC}
  1108.     procedure SetMediaTimeScale (theMedia: Media; time_Scale: TimeScale);
  1109.     {$IFC NOT GENERATINGCFM}
  1110.     inline
  1111.         $7069, $AAAA;
  1112.     {$ENDC}
  1113.     function GetMediaDuration (theMedia: Media): TimeValue;
  1114.     {$IFC NOT GENERATINGCFM}
  1115.     inline
  1116.         $706A, $AAAA;
  1117.     {$ENDC}
  1118.     function GetMediaLanguage (theMedia: Media): INTEGER;
  1119.     {$IFC NOT GENERATINGCFM}
  1120.     inline
  1121.         $706B, $AAAA;
  1122.     {$ENDC}
  1123.     procedure SetMediaLanguage (theMedia: Media; language: INTEGER);
  1124.     {$IFC NOT GENERATINGCFM}
  1125.     inline
  1126.         $706C, $AAAA;
  1127.     {$ENDC}
  1128.     function GetMediaQuality (theMedia: Media): INTEGER;
  1129.     {$IFC NOT GENERATINGCFM}
  1130.     inline
  1131.         $706D, $AAAA;
  1132.     {$ENDC}
  1133.     procedure SetMediaQuality (theMedia: Media; quality: INTEGER);
  1134.     {$IFC NOT GENERATINGCFM}
  1135.     inline
  1136.         $706E, $AAAA;
  1137.     {$ENDC}
  1138.     procedure GetMediaHandlerDescription (theMedia: Media; var mediaType: OSType; var creatorName: Str255; var creatorManufacturer: OSType);
  1139.     {$IFC NOT GENERATINGCFM}
  1140.     inline
  1141.         $706F, $AAAA;
  1142.     {$ENDC}
  1143.     function GetMediaUserData (theMedia: Media): UserData;
  1144.     {$IFC NOT GENERATINGCFM}
  1145.     inline
  1146.         $7070, $AAAA;
  1147.     {$ENDC}
  1148. {************************}
  1149. {* Media Handler routines}
  1150. {*************************}
  1151.     function GetMediaHandler (theMedia: Media): MediaHandler;
  1152.     {$IFC NOT GENERATINGCFM}
  1153.     inline
  1154.         $7071, $AAAA;
  1155.     {$ENDC}
  1156.     function SetMediaHandler (theMedia: Media; mH: MediaHandlerComponent): OSErr;
  1157.     {$IFC NOT GENERATINGCFM}
  1158.     inline
  1159.         $303C, $190, $AAAA;
  1160.     {$ENDC}
  1161. {************************}
  1162. {* Media's Data routines}
  1163. {*************************}
  1164.     function BeginMediaEdits (theMedia: Media): OSErr;
  1165.     {$IFC NOT GENERATINGCFM}
  1166.     inline
  1167.         $7072, $AAAA;
  1168.     {$ENDC}
  1169.     function EndMediaEdits (theMedia: Media): OSErr;
  1170.     {$IFC NOT GENERATINGCFM}
  1171.     inline
  1172.         $7073, $AAAA;
  1173.     {$ENDC}
  1174.     function SetMediaDefaultDataRefIndex (theMedia: Media; index: INTEGER): OSErr;
  1175.     {$IFC NOT GENERATINGCFM}
  1176.     inline
  1177.         $303C, $1E0, $AAAA;
  1178.     {$ENDC}
  1179.     procedure GetMediaDataHandlerDescription (theMedia: Media; index: INTEGER; var dhType: OSType; var creatorName: Str255; var creatorManufacturer: OSType);
  1180.     {$IFC NOT GENERATINGCFM}
  1181.     inline
  1182.         $303C, $19E, $AAAA;
  1183.     {$ENDC}
  1184.     function GetMediaDataHandler (theMedia: Media; index: INTEGER): DataHandler;
  1185.     {$IFC NOT GENERATINGCFM}
  1186.     inline
  1187.         $303C, $19F, $AAAA;
  1188.     {$ENDC}
  1189.     function SetMediaDataHandler (theMedia: Media; index: INTEGER; dataHandler: DataHandlerComponent): OSErr;
  1190.     {$IFC NOT GENERATINGCFM}
  1191.     inline
  1192.         $303C, $1A0, $AAAA;
  1193.     {$ENDC}
  1194.     function GetDataHandler (dataRef: Handle; dataHandlerSubType: OSType; flags: LONGINT): Component;
  1195.     {$IFC NOT GENERATINGCFM}
  1196.     inline
  1197.         $303C, $1ED, $AAAA;
  1198.     {$ENDC}
  1199. {************************}
  1200. {* Media Sample Table Routines}
  1201. {*************************}
  1202.     function GetMediaSampleDescriptionCount (theMedia: Media): LONGINT;
  1203.     {$IFC NOT GENERATINGCFM}
  1204.     inline
  1205.         $7077, $AAAA;
  1206.     {$ENDC}
  1207.     procedure GetMediaSampleDescription (theMedia: Media; index: LONGINT; descH: SampleDescriptionHandle);
  1208.     {$IFC NOT GENERATINGCFM}
  1209.     inline
  1210.         $7078, $AAAA;
  1211.     {$ENDC}
  1212.     function SetMediaSampleDescription (theMedia: Media; index: LONGINT; descH: SampleDescriptionHandle): OSErr;
  1213.     {$IFC NOT GENERATINGCFM}
  1214.     inline
  1215.         $303C, $1D0, $AAAA;
  1216.     {$ENDC}
  1217.     function GetMediaSampleCount (theMedia: Media): LONGINT;
  1218.     {$IFC NOT GENERATINGCFM}
  1219.     inline
  1220.         $7079, $AAAA;
  1221.     {$ENDC}
  1222.     procedure SampleNumToMediaTime (theMedia: Media; logicalSampleNum: LONGINT; var sampleTime: TimeValue; var sampleDuration: TimeValue);
  1223.     {$IFC NOT GENERATINGCFM}
  1224.     inline
  1225.         $707A, $AAAA;
  1226.     {$ENDC}
  1227.     procedure MediaTimeToSampleNum (theMedia: Media; time: TimeValue; var sampleNum: LONGINT; var sampleTime: TimeValue; var sampleDuration: TimeValue);
  1228.     {$IFC NOT GENERATINGCFM}
  1229.     inline
  1230.         $707B, $AAAA;
  1231.     {$ENDC}
  1232.     function AddMediaSample (theMedia: Media; dataIn: Handle; inOffset: LONGINT; size: LONGINT; durationPerSample: TimeValue; sampleDescriptionH: SampleDescriptionHandle; numberOfSamples: LONGINT; sampleFlags: INTEGER; var sampleTime: TimeValue): OSErr;
  1233.     {$IFC NOT GENERATINGCFM}
  1234.     inline
  1235.         $707C, $AAAA;
  1236.     {$ENDC}
  1237.     function AddMediaSampleReference (theMedia: Media; dataOffset: LONGINT; size: LONGINT; durationPerSample: TimeValue; sampleDescriptionH: SampleDescriptionHandle; numberOfSamples: LONGINT; sampleFlags: INTEGER; var sampleTime: TimeValue): OSErr;
  1238.     {$IFC NOT GENERATINGCFM}
  1239.     inline
  1240.         $707D, $AAAA;
  1241.     {$ENDC}
  1242.     function AddMediaSampleReferences (theMedia: Media; sampleDescriptionH: SampleDescriptionHandle; numberOfSamples: LONGINT; sampleRefs: SampleReferencePtr; var sampleTime: TimeValue): OSErr;
  1243.     {$IFC NOT GENERATINGCFM}
  1244.     inline
  1245.         $303C, $1F7, $AAAA;
  1246.     {$ENDC}
  1247.     function GetMediaSample (theMedia: Media; dataOut: Handle; maxSizeToGrow: LONGINT; var size: LONGINT; time: TimeValue; var sampleTime: TimeValue; var durationPerSample: TimeValue; sampleDescriptionH: SampleDescriptionHandle; var sampleDescriptionIndex: LONGINT; maxNumberOfSamples: LONGINT; var numberOfSamples: LONGINT; var sampleFlags: INTEGER): OSErr;
  1248.     {$IFC NOT GENERATINGCFM}
  1249.     inline
  1250.         $707E, $AAAA;
  1251.     {$ENDC}
  1252.     function GetMediaSampleReference (theMedia: Media; var dataOffset: LONGINT; var size: LONGINT; time: TimeValue; var sampleTime: TimeValue; var durationPerSample: TimeValue; sampleDescriptionH: SampleDescriptionHandle; var sampleDescriptionIndex: LONGINT; maxNumberOfSamples: LONGINT; var numberOfSamples: LONGINT; var sampleFlags: INTEGER): OSErr;
  1253.     {$IFC NOT GENERATINGCFM}
  1254.     inline
  1255.         $707F, $AAAA;
  1256.     {$ENDC}
  1257.     function SetMediaPreferredChunkSize (theMedia: Media; maxChunkSize: LONGINT): OSErr;
  1258.     {$IFC NOT GENERATINGCFM}
  1259.     inline
  1260.         $303C, $1F8, $AAAA;
  1261.     {$ENDC}
  1262.     function GetMediaPreferredChunkSize (theMedia: Media; var maxChunkSize: LONGINT): OSErr;
  1263.     {$IFC NOT GENERATINGCFM}
  1264.     inline
  1265.         $303C, $1F9, $AAAA;
  1266.     {$ENDC}
  1267.     function SetMediaShadowSync (theMedia: Media; frameDiffSampleNum: LONGINT; syncSampleNum: LONGINT): OSErr;
  1268.     {$IFC NOT GENERATINGCFM}
  1269.     inline
  1270.         $303C, $121, $AAAA;
  1271.     {$ENDC}
  1272.     function GetMediaShadowSync (theMedia: Media; frameDiffSampleNum: LONGINT; var syncSampleNum: LONGINT): OSErr;
  1273.     {$IFC NOT GENERATINGCFM}
  1274.     inline
  1275.         $303C, $122, $AAAA;
  1276.     {$ENDC}
  1277. {************************}
  1278. {* Editing Routines}
  1279. {*************************}
  1280.     function InsertMediaIntoTrack (theTrack: Track; trackStart: TimeValue; mediaTime: TimeValue; mediaDuration: TimeValue; mediaRate: Fixed): OSErr;
  1281.     {$IFC NOT GENERATINGCFM}
  1282.     inline
  1283.         $303C, $183, $AAAA;
  1284.     {$ENDC}
  1285.     function InsertTrackSegment (srcTrack: Track; dstTrack: Track; srcIn: TimeValue; srcDuration: TimeValue; dstIn: TimeValue): OSErr;
  1286.     {$IFC NOT GENERATINGCFM}
  1287.     inline
  1288.         $303C, $85, $AAAA;
  1289.     {$ENDC}
  1290.     function InsertMovieSegment (srcMovie: Movie; dstMovie: Movie; srcIn: TimeValue; srcDuration: TimeValue; dstIn: TimeValue): OSErr;
  1291.     {$IFC NOT GENERATINGCFM}
  1292.     inline
  1293.         $303C, $86, $AAAA;
  1294.     {$ENDC}
  1295.     function InsertEmptyTrackSegment (dstTrack: Track; dstIn: TimeValue; dstDuration: TimeValue): OSErr;
  1296.     {$IFC NOT GENERATINGCFM}
  1297.     inline
  1298.         $303C, $87, $AAAA;
  1299.     {$ENDC}
  1300.     function InsertEmptyMovieSegment (dstMovie: Movie; dstIn: TimeValue; dstDuration: TimeValue): OSErr;
  1301.     {$IFC NOT GENERATINGCFM}
  1302.     inline
  1303.         $303C, $88, $AAAA;
  1304.     {$ENDC}
  1305.     function DeleteTrackSegment (theTrack: Track; startTime: TimeValue; duration: TimeValue): OSErr;
  1306.     {$IFC NOT GENERATINGCFM}
  1307.     inline
  1308.         $303C, $89, $AAAA;
  1309.     {$ENDC}
  1310.     function DeleteMovieSegment (theMovie: Movie; startTime: TimeValue; duration: TimeValue): OSErr;
  1311.     {$IFC NOT GENERATINGCFM}
  1312.     inline
  1313.         $303C, $8A, $AAAA;
  1314.     {$ENDC}
  1315.     function ScaleTrackSegment (theTrack: Track; startTime: TimeValue; oldDuration: TimeValue; newDuration: TimeValue): OSErr;
  1316.     {$IFC NOT GENERATINGCFM}
  1317.     inline
  1318.         $303C, $8B, $AAAA;
  1319.     {$ENDC}
  1320.     function ScaleMovieSegment (theMovie: Movie; startTime: TimeValue; oldDuration: TimeValue; newDuration: TimeValue): OSErr;
  1321.     {$IFC NOT GENERATINGCFM}
  1322.     inline
  1323.         $303C, $8C, $AAAA;
  1324.     {$ENDC}
  1325. {************************}
  1326. {* Hi-level Editing Routines}
  1327. {*************************}
  1328.     function CutMovieSelection (theMovie: Movie): Movie;
  1329.     {$IFC NOT GENERATINGCFM}
  1330.     inline
  1331.         $303C, $8D, $AAAA;
  1332.     {$ENDC}
  1333.     function CopyMovieSelection (theMovie: Movie): Movie;
  1334.     {$IFC NOT GENERATINGCFM}
  1335.     inline
  1336.         $303C, $8E, $AAAA;
  1337.     {$ENDC}
  1338.     procedure PasteMovieSelection (theMovie: Movie; src: Movie);
  1339.     {$IFC NOT GENERATINGCFM}
  1340.     inline
  1341.         $303C, $8F, $AAAA;
  1342.     {$ENDC}
  1343.     procedure AddMovieSelection (theMovie: Movie; src: Movie);
  1344.     {$IFC NOT GENERATINGCFM}
  1345.     inline
  1346.         $303C, $152, $AAAA;
  1347.     {$ENDC}
  1348.     procedure ClearMovieSelection (theMovie: Movie);
  1349.     {$IFC NOT GENERATINGCFM}
  1350.     inline
  1351.         $303C, $E1, $AAAA;
  1352.     {$ENDC}
  1353.     function PasteHandleIntoMovie (h: Handle; handleType: OSType; theMovie: Movie; flags: LONGINT; userComp: ComponentInstance): OSErr;
  1354.     {$IFC NOT GENERATINGCFM}
  1355.     inline
  1356.         $303C, $CB, $AAAA;
  1357.     {$ENDC}
  1358.     function PutMovieIntoTypedHandle (theMovie: Movie; targetTrack: Track; handleType: OSType; publicMovie: Handle; start: TimeValue; dur: TimeValue; flags: LONGINT; userComp: ComponentInstance): OSErr;
  1359.     {$IFC NOT GENERATINGCFM}
  1360.     inline
  1361.         $303C, $1CD, $AAAA;
  1362.     {$ENDC}
  1363.     function IsScrapMovie (targetTrack: Track): Component;
  1364.     {$IFC NOT GENERATINGCFM}
  1365.     inline
  1366.         $303C, $CC, $AAAA;
  1367.     {$ENDC}
  1368. {************************}
  1369. {* Middle-level Editing Routines}
  1370. {*************************}
  1371.     function CopyTrackSettings (srcTrack: Track; dstTrack: Track): OSErr;
  1372.     {$IFC NOT GENERATINGCFM}
  1373.     inline
  1374.         $303C, $153, $AAAA;
  1375.     {$ENDC}
  1376.     function CopyMovieSettings (srcMovie: Movie; dstMovie: Movie): OSErr;
  1377.     {$IFC NOT GENERATINGCFM}
  1378.     inline
  1379.         $303C, $154, $AAAA;
  1380.     {$ENDC}
  1381.     function AddEmptyTrackToMovie (srcTrack: Track; dstMovie: Movie; dataRef: Handle; dataRefType: OSType; var dstTrack: Track): OSErr;
  1382.     {$IFC NOT GENERATINGCFM}
  1383.     inline
  1384.         $7074, $AAAA;
  1385.     {$ENDC}
  1386. {************************}
  1387. {* movie & track edit state routines}
  1388. {*************************}
  1389.     function NewMovieEditState (theMovie: Movie): MovieEditState;
  1390.     {$IFC NOT GENERATINGCFM}
  1391.     inline
  1392.         $303C, $104, $AAAA;
  1393.     {$ENDC}
  1394.     function UseMovieEditState (theMovie: Movie; toState: MovieEditState): OSErr;
  1395.     {$IFC NOT GENERATINGCFM}
  1396.     inline
  1397.         $303C, $105, $AAAA;
  1398.     {$ENDC}
  1399.     function DisposeMovieEditState (state: MovieEditState): OSErr;
  1400.     {$IFC NOT GENERATINGCFM}
  1401.     inline
  1402.         $303C, $106, $AAAA;
  1403.     {$ENDC}
  1404.     function NewTrackEditState (theTrack: Track): TrackEditState;
  1405.     {$IFC NOT GENERATINGCFM}
  1406.     inline
  1407.         $303C, $107, $AAAA;
  1408.     {$ENDC}
  1409.     function UseTrackEditState (theTrack: Track; state: TrackEditState): OSErr;
  1410.     {$IFC NOT GENERATINGCFM}
  1411.     inline
  1412.         $303C, $108, $AAAA;
  1413.     {$ENDC}
  1414.     function DisposeTrackEditState (state: TrackEditState): OSErr;
  1415.     {$IFC NOT GENERATINGCFM}
  1416.     inline
  1417.         $303C, $109, $AAAA;
  1418.     {$ENDC}
  1419. {************************}
  1420. {* track reference routines}
  1421. {*************************}
  1422.     function AddTrackReference (theTrack: Track; refTrack: Track; refType: OSType; var addedIndex: LONGINT): OSErr;
  1423.     {$IFC NOT GENERATINGCFM}
  1424.     inline
  1425.         $303C, $1F0, $AAAA;
  1426.     {$ENDC}
  1427.     function DeleteTrackReference (theTrack: Track; refType: OSType; index: LONGINT): OSErr;
  1428.     {$IFC NOT GENERATINGCFM}
  1429.     inline
  1430.         $303C, $1F1, $AAAA;
  1431.     {$ENDC}
  1432.     function SetTrackReference (theTrack: Track; refTrack: Track; refType: OSType; index: LONGINT): OSErr;
  1433.     {$IFC NOT GENERATINGCFM}
  1434.     inline
  1435.         $303C, $1F2, $AAAA;
  1436.     {$ENDC}
  1437.     function GetTrackReference (theTrack: Track; refType: OSType; index: LONGINT): Track;
  1438.     {$IFC NOT GENERATINGCFM}
  1439.     inline
  1440.         $303C, $1F3, $AAAA;
  1441.     {$ENDC}
  1442.     function GetNextTrackReferenceType (theTrack: Track; refType: OSType): OSType;
  1443.     {$IFC NOT GENERATINGCFM}
  1444.     inline
  1445.         $303C, $1F4, $AAAA;
  1446.     {$ENDC}
  1447.     function GetTrackReferenceCount (theTrack: Track; refType: OSType): LONGINT;
  1448.     {$IFC NOT GENERATINGCFM}
  1449.     inline
  1450.         $303C, $1F5, $AAAA;
  1451.     {$ENDC}
  1452. {************************}
  1453. {* high level file conversion routines}
  1454. {*************************}
  1455.     function ConvertFileToMovieFile ({CONST}
  1456.                                     var inputFile: FSSpec; {CONST}
  1457.                                     var outputFile: FSSpec; creator: OSType; scriptTag: ScriptCode; var resID: INTEGER; flags: LONGINT; userComp: ComponentInstance; proc: MovieProgressUPP; refCon: LONGINT): OSErr;
  1458.     {$IFC NOT GENERATINGCFM}
  1459.     inline
  1460.         $303C, $1CB, $AAAA;
  1461.     {$ENDC}
  1462.     function ConvertMovieToFile (theMovie: Movie; onlyTrack: Track; var outputFile: FSSpec; fileType: OSType; creator: OSType; scriptTag: ScriptCode; var resID: INTEGER; flags: LONGINT; userComp: ComponentInstance): OSErr;
  1463.     {$IFC NOT GENERATINGCFM}
  1464.     inline
  1465.         $303C, $1CC, $AAAA;
  1466.     {$ENDC}
  1467. {************************}
  1468. {* Movie Timebase Conversion Routines}
  1469. {*************************}
  1470.     function TrackTimeToMediaTime (value: TimeValue; theTrack: Track): TimeValue;
  1471.     {$IFC NOT GENERATINGCFM}
  1472.     inline
  1473.         $303C, $96, $AAAA;
  1474.     {$ENDC}
  1475.     function GetTrackEditRate (theTrack: Track; atTime: TimeValue): Fixed;
  1476.     {$IFC NOT GENERATINGCFM}
  1477.     inline
  1478.         $303C, $123, $AAAA;
  1479.     {$ENDC}
  1480. {************************}
  1481. {* Miscellaneous Routines}
  1482. {*************************}
  1483.     function GetMovieDataSize (theMovie: Movie; startTime: TimeValue; duration: TimeValue): LONGINT;
  1484.     {$IFC NOT GENERATINGCFM}
  1485.     inline
  1486.         $303C, $98, $AAAA;
  1487.     {$ENDC}
  1488.     function GetTrackDataSize (theTrack: Track; startTime: TimeValue; duration: TimeValue): LONGINT;
  1489.     {$IFC NOT GENERATINGCFM}
  1490.     inline
  1491.         $303C, $149, $AAAA;
  1492.     {$ENDC}
  1493.     function GetMediaDataSize (theMedia: Media; startTime: TimeValue; duration: TimeValue): LONGINT;
  1494.     {$IFC NOT GENERATINGCFM}
  1495.     inline
  1496.         $303C, $99, $AAAA;
  1497.     {$ENDC}
  1498.     function PtInMovie (theMovie: Movie; pt: Point): BOOLEAN;
  1499.     {$IFC NOT GENERATINGCFM}
  1500.     inline
  1501.         $303C, $9A, $AAAA;
  1502.     {$ENDC}
  1503.     function PtInTrack (theTrack: Track; pt: Point): BOOLEAN;
  1504.     {$IFC NOT GENERATINGCFM}
  1505.     inline
  1506.         $303C, $9B, $AAAA;
  1507.     {$ENDC}
  1508. {************************}
  1509. {* Group Selection Routines}
  1510. {*************************}
  1511.     procedure SetMovieLanguage (theMovie: Movie; language: LONGINT);
  1512.     {$IFC NOT GENERATINGCFM}
  1513.     inline
  1514.         $303C, $9C, $AAAA;
  1515.     {$ENDC}
  1516. {************************}
  1517. {* User Data}
  1518. {*************************}
  1519.     function GetUserData (theUserData: UserData; data: Handle; udType: OSType; index: LONGINT): OSErr;
  1520.     {$IFC NOT GENERATINGCFM}
  1521.     inline
  1522.         $303C, $9E, $AAAA;
  1523.     {$ENDC}
  1524.     function AddUserData (theUserData: UserData; data: Handle; udType: OSType): OSErr;
  1525.     {$IFC NOT GENERATINGCFM}
  1526.     inline
  1527.         $303C, $9F, $AAAA;
  1528.     {$ENDC}
  1529.     function RemoveUserData (theUserData: UserData; udType: OSType; index: LONGINT): OSErr;
  1530.     {$IFC NOT GENERATINGCFM}
  1531.     inline
  1532.         $303C, $A0, $AAAA;
  1533.     {$ENDC}
  1534.     function CountUserDataType (theUserData: UserData; udType: OSType): INTEGER;
  1535.     {$IFC NOT GENERATINGCFM}
  1536.     inline
  1537.         $303C, $14B, $AAAA;
  1538.     {$ENDC}
  1539.     function GetNextUserDataType (theUserData: UserData; udType: OSType): LONGINT;
  1540.     {$IFC NOT GENERATINGCFM}
  1541.     inline
  1542.         $303C, $1A5, $AAAA;
  1543.     {$ENDC}
  1544.     function GetUserDataItem (theUserData: UserData; data: univ Ptr; size: LONGINT; udType: OSType; index: LONGINT): OSErr;
  1545.     {$IFC NOT GENERATINGCFM}
  1546.     inline
  1547.         $303C, $126, $AAAA;
  1548.     {$ENDC}
  1549.     function SetUserDataItem (theUserData: UserData; data: univ Ptr; size: LONGINT; udType: OSType; index: LONGINT): OSErr;
  1550.     {$IFC NOT GENERATINGCFM}
  1551.     inline
  1552.         $303C, $12E, $AAAA;
  1553.     {$ENDC}
  1554.     function AddUserDataText (theUserData: UserData; data: Handle; udType: OSType; index: LONGINT; itlRegionTag: INTEGER): OSErr;
  1555.     {$IFC NOT GENERATINGCFM}
  1556.     inline
  1557.         $303C, $14C, $AAAA;
  1558.     {$ENDC}
  1559.     function GetUserDataText (theUserData: UserData; data: Handle; udType: OSType; index: LONGINT; itlRegionTag: INTEGER): OSErr;
  1560.     {$IFC NOT GENERATINGCFM}
  1561.     inline
  1562.         $303C, $14D, $AAAA;
  1563.     {$ENDC}
  1564.     function RemoveUserDataText (theUserData: UserData; udType: OSType; index: LONGINT; itlRegionTag: INTEGER): OSErr;
  1565.     {$IFC NOT GENERATINGCFM}
  1566.     inline
  1567.         $303C, $14E, $AAAA;
  1568.     {$ENDC}
  1569.     function NewUserData (var theUserData: UserData): OSErr;
  1570.     {$IFC NOT GENERATINGCFM}
  1571.     inline
  1572.         $303C, $12F, $AAAA;
  1573.     {$ENDC}
  1574.     function DisposeUserData (theUserData: UserData): OSErr;
  1575.     {$IFC NOT GENERATINGCFM}
  1576.     inline
  1577.         $303C, $130, $AAAA;
  1578.     {$ENDC}
  1579.     function NewUserDataFromHandle (h: Handle; var theUserData: UserData): OSErr;
  1580.     {$IFC NOT GENERATINGCFM}
  1581.     inline
  1582.         $303C, $131, $AAAA;
  1583.     {$ENDC}
  1584.     function PutUserDataIntoHandle (theUserData: UserData; h: Handle): OSErr;
  1585.     {$IFC NOT GENERATINGCFM}
  1586.     inline
  1587.         $303C, $132, $AAAA;
  1588.     {$ENDC}
  1589.     procedure GetMediaNextInterestingTime (theMedia: Media; interestingTimeFlags: INTEGER; time: TimeValue; rate: Fixed; var interestingTime: TimeValue; var interestingDuration: TimeValue);
  1590.     {$IFC NOT GENERATINGCFM}
  1591.     inline
  1592.         $303C, $16D, $AAAA;
  1593.     {$ENDC}
  1594.     procedure GetTrackNextInterestingTime (theTrack: Track; interestingTimeFlags: INTEGER; time: TimeValue; rate: Fixed; var interestingTime: TimeValue; var interestingDuration: TimeValue);
  1595.     {$IFC NOT GENERATINGCFM}
  1596.     inline
  1597.         $303C, $E2, $AAAA;
  1598.     {$ENDC}
  1599.     procedure GetMovieNextInterestingTime (theMovie: Movie; interestingTimeFlags: INTEGER; numMediaTypes: INTEGER; {CONST}
  1600.                                     var whichMediaTypes: OSType; time: TimeValue; rate: Fixed; var interestingTime: TimeValue; var interestingDuration: TimeValue);
  1601.     {$IFC NOT GENERATINGCFM}
  1602.     inline
  1603.         $303C, $10E, $AAAA;
  1604.     {$ENDC}
  1605.     function CreateMovieFile ({CONST}
  1606.                                     var fileSpec: FSSpec; creator: OSType; scriptTag: ScriptCode; createMovieFileFlags: LONGINT; var resRefNum: INTEGER; var newmovie: Movie): OSErr;
  1607.     {$IFC NOT GENERATINGCFM}
  1608.     inline
  1609.         $303C, $191, $AAAA;
  1610.     {$ENDC}
  1611.     function OpenMovieFile ({CONST}
  1612.                                     var fileSpec: FSSpec; var resRefNum: INTEGER; permission: ByteParameter): OSErr;
  1613.     {$IFC NOT GENERATINGCFM}
  1614.     inline
  1615.         $303C, $192, $AAAA;
  1616.     {$ENDC}
  1617.     function CloseMovieFile (resRefNum: INTEGER): OSErr;
  1618.     {$IFC NOT GENERATINGCFM}
  1619.     inline
  1620.         $303C, $D5, $AAAA;
  1621.     {$ENDC}
  1622.     function DeleteMovieFile ({CONST}
  1623.                                     var fileSpec: FSSpec): OSErr;
  1624.     {$IFC NOT GENERATINGCFM}
  1625.     inline
  1626.         $303C, $175, $AAAA;
  1627.     {$ENDC}
  1628.     function NewMovieFromFile (var theMovie: Movie; resRefNum: INTEGER; var resId: INTEGER; resName: StringPtr; newMovieFlags: INTEGER; var dataRefWasChanged: BOOLEAN): OSErr;
  1629.     {$IFC NOT GENERATINGCFM}
  1630.     inline
  1631.         $303C, $F0, $AAAA;
  1632.     {$ENDC}
  1633.     function NewMovieFromHandle (var theMovie: Movie; h: Handle; newMovieFlags: INTEGER; var dataRefWasChanged: BOOLEAN): OSErr;
  1634.     {$IFC NOT GENERATINGCFM}
  1635.     inline
  1636.         $303C, $F1, $AAAA;
  1637.     {$ENDC}
  1638.     function NewMovieFromDataFork (var theMovie: Movie; fRefNum: INTEGER; fileOffset: LONGINT; newMovieFlags: INTEGER; var dataRefWasChanged: BOOLEAN): OSErr;
  1639.     {$IFC NOT GENERATINGCFM}
  1640.     inline
  1641.         $303C, $1B3, $AAAA;
  1642.     {$ENDC}
  1643.     function NewMovieFromUserProc (var m: Movie; flags: INTEGER; var dataRefWasChanged: BOOLEAN; getProc: GetMovieUPP; refCon: univ Ptr; defaultDataRef: Handle; dataRefType: OSType): OSErr;
  1644.     {$IFC NOT GENERATINGCFM}
  1645.     inline
  1646.         $303C, $1EC, $AAAA;
  1647.     {$ENDC}
  1648.     function AddMovieResource (theMovie: Movie; resRefNum: INTEGER; var resId: INTEGER; resName: ConstStr255Param): OSErr;
  1649.     {$IFC NOT GENERATINGCFM}
  1650.     inline
  1651.         $303C, $D7, $AAAA;
  1652.     {$ENDC}
  1653.     function UpdateMovieResource (theMovie: Movie; resRefNum: INTEGER; resId: INTEGER; resName: ConstStr255Param): OSErr;
  1654.     {$IFC NOT GENERATINGCFM}
  1655.     inline
  1656.         $303C, $D8, $AAAA;
  1657.     {$ENDC}
  1658.     function RemoveMovieResource (resRefNum: INTEGER; resId: INTEGER): OSErr;
  1659.     {$IFC NOT GENERATINGCFM}
  1660.     inline
  1661.         $303C, $176, $AAAA;
  1662.     {$ENDC}
  1663.     function HasMovieChanged (theMovie: Movie): BOOLEAN;
  1664.     {$IFC NOT GENERATINGCFM}
  1665.     inline
  1666.         $303C, $D9, $AAAA;
  1667.     {$ENDC}
  1668.     procedure ClearMovieChanged (theMovie: Movie);
  1669.     {$IFC NOT GENERATINGCFM}
  1670.     inline
  1671.         $303C, $113, $AAAA;
  1672.     {$ENDC}
  1673.     function SetMovieDefaultDataRef (theMovie: Movie; dataRef: Handle; dataRefType: OSType): OSErr;
  1674.     {$IFC NOT GENERATINGCFM}
  1675.     inline
  1676.         $303C, $1C1, $AAAA;
  1677.     {$ENDC}
  1678.     function GetMovieDefaultDataRef (theMovie: Movie; var dataRef: Handle; var dataRefType: OSType): OSErr;
  1679.     {$IFC NOT GENERATINGCFM}
  1680.     inline
  1681.         $303C, $1D2, $AAAA;
  1682.     {$ENDC}
  1683.     function SetMovieColorTable (theMovie: Movie; ctab: CTabHandle): OSErr;
  1684.     {$IFC NOT GENERATINGCFM}
  1685.     inline
  1686.         $303C, $205, $AAAA;
  1687.     {$ENDC}
  1688.     function GetMovieColorTable (theMovie: Movie; var ctab: CTabHandle): OSErr;
  1689.     {$IFC NOT GENERATINGCFM}
  1690.     inline
  1691.         $303C, $206, $AAAA;
  1692.     {$ENDC}
  1693.     procedure FlattenMovie (theMovie: Movie; movieFlattenFlags: LONGINT; {CONST}
  1694.                                     var theFile: FSSpec; creator: OSType; scriptTag: ScriptCode; createMovieFileFlags: LONGINT; var resId: INTEGER; resName: ConstStr255Param);
  1695.     {$IFC NOT GENERATINGCFM}
  1696.     inline
  1697.         $303C, $19B, $AAAA;
  1698.     {$ENDC}
  1699.     function FlattenMovieData (theMovie: Movie; movieFlattenFlags: LONGINT; {CONST}
  1700.                                     var theFile: FSSpec; creator: OSType; scriptTag: ScriptCode; createMovieFileFlags: LONGINT): Movie;
  1701.     {$IFC NOT GENERATINGCFM}
  1702.     inline
  1703.         $303C, $19C, $AAAA;
  1704.     {$ENDC}
  1705.     procedure SetMovieProgressProc (theMovie: Movie; p: MovieProgressUPP; refcon: LONGINT);
  1706.     {$IFC NOT GENERATINGCFM}
  1707.     inline
  1708.         $303C, $19A, $AAAA;
  1709.     {$ENDC}
  1710. {************************}
  1711. {* Video Media routines}
  1712. {*************************}
  1713.     function GetVideoMediaGraphicsMode (mh: MediaHandler; var graphicsMode: LONGINT; var opColor: RGBColor): HandlerError;
  1714.     {$IFC NOT GENERATINGCFM}
  1715.     inline
  1716.         $2F3C, $8, $101, $7000, $A82A;
  1717.     {$ENDC}
  1718.     function SetVideoMediaGraphicsMode (mh: MediaHandler; graphicsMode: LONGINT; {CONST}
  1719.                                     var opColor: RGBColor): HandlerError;
  1720.     {$IFC NOT GENERATINGCFM}
  1721.     inline
  1722.         $2F3C, $8, $102, $7000, $A82A;
  1723.     {$ENDC}
  1724. {************************}
  1725. {* Sound Media routines}
  1726. {*************************}
  1727.     function GetSoundMediaBalance (mh: MediaHandler; var balance: INTEGER): HandlerError;
  1728.     {$IFC NOT GENERATINGCFM}
  1729.     inline
  1730.         $2F3C, $4, $101, $7000, $A82A;
  1731.     {$ENDC}
  1732.     function SetSoundMediaBalance (mh: MediaHandler; balance: INTEGER): HandlerError;
  1733.     {$IFC NOT GENERATINGCFM}
  1734.     inline
  1735.         $2F3C, $2, $102, $7000, $A82A;
  1736.     {$ENDC}
  1737. {************************}
  1738. {* Text Media routines}
  1739. {*************************}
  1740. { Return displayFlags for TextProc }
  1741.  
  1742.     const
  1743.         txtProcDefaultDisplay = 0;                            {    Use the media's default}
  1744.         txtProcDontDisplay = 1;                            {    Don't display the text}
  1745.         txtProcDoDisplay = 2;                            {    Do display the text}
  1746.  
  1747.  
  1748.     function SetTextProc (mh: MediaHandler; TextProc: TextMediaUPP; refcon: LONGINT): ComponentResult;
  1749.     {$IFC NOT GENERATINGCFM}
  1750.     inline
  1751.         $2F3C, $8, $101, $7000, $A82A;
  1752.     {$ENDC}
  1753.     function AddTextSample (mh: MediaHandler; text: Ptr; size: LONGINT; fontNumber: INTEGER; fontSize: INTEGER; textFace: Style; var textColor: RGBColor; var backColor: RGBColor; textJustification: INTEGER; var textBox: Rect; displayFlags: LONGINT; scrollDelay: TimeValue; hiliteStart: INTEGER; hiliteEnd: INTEGER; var rgbHiliteColor: RGBColor; duration: TimeValue; var sampleTime: TimeValue): ComponentResult;
  1754.     {$IFC NOT GENERATINGCFM}
  1755.     inline
  1756.         $2F3C, $34, $102, $7000, $A82A;
  1757.     {$ENDC}
  1758.     function AddTESample (mh: MediaHandler; hTE: TEHandle; var backColor: RGBColor; textJustification: INTEGER; var textBox: Rect; displayFlags: LONGINT; scrollDelay: TimeValue; hiliteStart: INTEGER; hiliteEnd: INTEGER; var rgbHiliteColor: RGBColor; duration: TimeValue; var sampleTime: TimeValue): ComponentResult;
  1759.     {$IFC NOT GENERATINGCFM}
  1760.     inline
  1761.         $2F3C, $26, $103, $7000, $A82A;
  1762.     {$ENDC}
  1763.     function AddHiliteSample (mh: MediaHandler; hiliteStart: INTEGER; hiliteEnd: INTEGER; var rgbHiliteColor: RGBColor; duration: TimeValue; var sampleTime: TimeValue): ComponentResult;
  1764.     {$IFC NOT GENERATINGCFM}
  1765.     inline
  1766.         $2F3C, $10, $104, $7000, $A82A;
  1767.     {$ENDC}
  1768.  
  1769.     const
  1770.         findTextEdgeOK = $1;                    { Okay to find text at specified sample time}
  1771.         findTextCaseSensitive = $2;                    { Case sensitive search}
  1772.         findTextReverseSearch = $4;                    { Search from sampleTime backwards}
  1773.         findTextWrapAround = $8;                    { Wrap search when beginning or end of movie is hit}
  1774.         findTextUseOffset = $10;                    { Begin search at the given character offset into sample rather than edge}
  1775.  
  1776.  
  1777.     function FindNextText (mh: MediaHandler; text: Ptr; size: LONGINT; findFlags: INTEGER; startTime: TimeValue; var foundTime: TimeValue; var foundDuration: TimeValue; var offset: LONGINT): ComponentResult;
  1778.     {$IFC NOT GENERATINGCFM}
  1779.     inline
  1780.         $2F3C, $1A, $105, $7000, $A82A;
  1781.     {$ENDC}
  1782.     function HiliteTextSample (mh: MediaHandler; sampleTime: TimeValue; hiliteStart: INTEGER; hiliteEnd: INTEGER; var rgbHiliteColor: RGBColor): ComponentResult;
  1783.     {$IFC NOT GENERATINGCFM}
  1784.     inline
  1785.         $2F3C, $C, $106, $7000, $A82A;
  1786.     {$ENDC}
  1787.  
  1788.     const
  1789.         dropShadowOffsetType = 'drpo';
  1790.         dropShadowTranslucencyType = 'drpt';
  1791.  
  1792.  
  1793.     function SetTextSampleData (mh: MediaHandler; data: univ Ptr; dataType: OSType): ComponentResult;
  1794.     {$IFC NOT GENERATINGCFM}
  1795.     inline
  1796.         $2F3C, $8, $107, $7000, $A82A;
  1797.     {$ENDC}
  1798.     function MovieSearchText (theMovie: Movie; text: Ptr; size: LONGINT; searchFlags: LONGINT; var searchTrack: Track; var searchTime: TimeValue; var searchOffset: LONGINT): OSErr;
  1799.     {$IFC NOT GENERATINGCFM}
  1800.     inline
  1801.         $303C, $207, $AAAA;
  1802.     {$ENDC}
  1803.     procedure GetPosterBox (theMovie: Movie; var boxRect: Rect);
  1804.     {$IFC NOT GENERATINGCFM}
  1805.     inline
  1806.         $303C, $16F, $AAAA;
  1807.     {$ENDC}
  1808.     procedure SetPosterBox (theMovie: Movie; {CONST}
  1809.                                     var boxRect: Rect);
  1810.     {$IFC NOT GENERATINGCFM}
  1811.     inline
  1812.         $303C, $170, $AAAA;
  1813.     {$ENDC}
  1814.     function GetMovieSegmentDisplayBoundsRgn (theMovie: Movie; time: TimeValue; duration: TimeValue): RgnHandle;
  1815.     {$IFC NOT GENERATINGCFM}
  1816.     inline
  1817.         $303C, $16C, $AAAA;
  1818.     {$ENDC}
  1819.     function GetTrackSegmentDisplayBoundsRgn (theTrack: Track; time: TimeValue; duration: TimeValue): RgnHandle;
  1820.     {$IFC NOT GENERATINGCFM}
  1821.     inline
  1822.         $303C, $16B, $AAAA;
  1823.     {$ENDC}
  1824.     procedure SetMovieCoverProcs (theMovie: Movie; uncoverProc: MovieRgnCoverUPP; coverProc: MovieRgnCoverUPP; refcon: LONGINT);
  1825.     {$IFC NOT GENERATINGCFM}
  1826.     inline
  1827.         $303C, $179, $AAAA;
  1828.     {$ENDC}
  1829.     function GetMovieCoverProcs (theMovie: Movie; var uncoverProc: MovieRgnCoverUPP; var coverProc: MovieRgnCoverUPP; var refcon: LONGINT): OSErr;
  1830.     {$IFC NOT GENERATINGCFM}
  1831.     inline
  1832.         $303C, $1DD, $AAAA;
  1833.     {$ENDC}
  1834.     function GetTrackStatus (theTrack: Track): ComponentResult;
  1835.     {$IFC NOT GENERATINGCFM}
  1836.     inline
  1837.         $303C, $172, $AAAA;
  1838.     {$ENDC}
  1839.     function GetMovieStatus (theMovie: Movie; var firstProblemTrack: Track): ComponentResult;
  1840.     {$IFC NOT GENERATINGCFM}
  1841.     inline
  1842.         $303C, $173, $AAAA;
  1843.     {$ENDC}
  1844. {***}
  1845. {    Movie Controller support routines}
  1846. {***}
  1847.     function NewMovieController (theMovie: Movie; {CONST}
  1848.                                     var movieRect: Rect; someFlags: LONGINT): ComponentInstance;
  1849.     {$IFC NOT GENERATINGCFM}
  1850.     inline
  1851.         $303C, $18A, $AAAA;
  1852.     {$ENDC}
  1853.     procedure DisposeMovieController (mc: ComponentInstance);
  1854.     {$IFC NOT GENERATINGCFM}
  1855.     inline
  1856.         $303C, $18B, $AAAA;
  1857.     {$ENDC}
  1858.     procedure ShowMovieInformation (theMovie: Movie; filterProc: ModalFilterUPP; refCon: LONGINT);
  1859.     {$IFC NOT GENERATINGCFM}
  1860.     inline
  1861.         $303C, $209, $AAAA;
  1862.     {$ENDC}
  1863. {****}
  1864. {    Scrap routines}
  1865. {****}
  1866.     function PutMovieOnScrap (theMovie: Movie; movieScrapFlags: LONGINT): OSErr;
  1867.     {$IFC NOT GENERATINGCFM}
  1868.     inline
  1869.         $303C, $18C, $AAAA;
  1870.     {$ENDC}
  1871.     function NewMovieFromScrap (newMovieFlags: LONGINT): Movie;
  1872.     {$IFC NOT GENERATINGCFM}
  1873.     inline
  1874.         $303C, $18D, $AAAA;
  1875.     {$ENDC}
  1876. {****}
  1877. {    DataRef routines}
  1878. {****}
  1879.     function GetMediaDataRef (theMedia: Media; index: INTEGER; var dataRef: Handle; var dataRefType: OSType; var dataRefAttributes: LONGINT): OSErr;
  1880.     {$IFC NOT GENERATINGCFM}
  1881.     inline
  1882.         $303C, $197, $AAAA;
  1883.     {$ENDC}
  1884.     function SetMediaDataRef (theMedia: Media; index: INTEGER; dataRef: Handle; dataRefType: OSType): OSErr;
  1885.     {$IFC NOT GENERATINGCFM}
  1886.     inline
  1887.         $303C, $1C9, $AAAA;
  1888.     {$ENDC}
  1889.     function SetMediaDataRefAttributes (theMedia: Media; index: INTEGER; dataRefAttributes: LONGINT): OSErr;
  1890.     {$IFC NOT GENERATINGCFM}
  1891.     inline
  1892.         $303C, $1CA, $AAAA;
  1893.     {$ENDC}
  1894.     function AddMediaDataRef (theMedia: Media; var index: INTEGER; dataRef: Handle; dataRefType: OSType): OSErr;
  1895.     {$IFC NOT GENERATINGCFM}
  1896.     inline
  1897.         $303C, $198, $AAAA;
  1898.     {$ENDC}
  1899.     function GetMediaDataRefCount (theMedia: Media; var count: INTEGER): OSErr;
  1900.     {$IFC NOT GENERATINGCFM}
  1901.     inline
  1902.         $303C, $199, $AAAA;
  1903.     {$ENDC}
  1904. {****}
  1905. {    Playback hint routines}
  1906. {****}
  1907.     procedure SetMoviePlayHints (theMovie: Movie; flags: LONGINT; flagsMask: LONGINT);
  1908.     {$IFC NOT GENERATINGCFM}
  1909.     inline
  1910.         $303C, $1A1, $AAAA;
  1911.     {$ENDC}
  1912.     procedure SetMediaPlayHints (theMedia: Media; flags: LONGINT; flagsMask: LONGINT);
  1913.     {$IFC NOT GENERATINGCFM}
  1914.     inline
  1915.         $303C, $1A2, $AAAA;
  1916.     {$ENDC}
  1917. {****}
  1918. {    Load time track hints}
  1919. {****}
  1920.  
  1921.     const
  1922.         preloadAlways = $1;
  1923.         preloadOnlyIfEnabled = $2;
  1924.  
  1925.  
  1926.     procedure SetTrackLoadSettings (theTrack: Track; preloadTime: TimeValue; preloadDuration: TimeValue; preloadFlags: LONGINT; defaultHints: LONGINT);
  1927.     {$IFC NOT GENERATINGCFM}
  1928.     inline
  1929.         $303C, $1E3, $AAAA;
  1930.     {$ENDC}
  1931.     procedure GetTrackLoadSettings (theTrack: Track; var preloadTime: TimeValue; var preloadDuration: TimeValue; var preloadFlags: LONGINT; var defaultHints: LONGINT);
  1932.     {$IFC NOT GENERATINGCFM}
  1933.     inline
  1934.         $303C, $1E4, $AAAA;
  1935.     {$ENDC}
  1936.  
  1937.     const
  1938.         MovieControllerComponentType = 'play';
  1939.  
  1940.  
  1941.     type
  1942.         MovieController = ComponentInstance;
  1943.  
  1944.  
  1945.     const
  1946.         mcActionIdle = 1;                            { no param}
  1947.         mcActionDraw = 2;                            { param is WindowPtr}
  1948.         mcActionActivate = 3;                            { no param}
  1949.         mcActionDeactivate = 4;                            { no param}
  1950.         mcActionMouseDown = 5;                            { param is pointer to EventRecord}
  1951.         mcActionKey = 6;                            { param is pointer to EventRecord}
  1952.         mcActionPlay = 8;                            { param is Fixed, play rate}
  1953.         mcActionGoToTime = 12;                            { param is TimeRecord}
  1954.         mcActionSetVolume = 14;                            { param is a short}
  1955.         mcActionGetVolume = 15;                            { param is pointer to a short}
  1956.         mcActionStep = 18;                            { param is number of steps (short)}
  1957.         mcActionSetLooping = 21;                            { param is Boolean}
  1958.         mcActionGetLooping = 22;                            { param is pointer to a Boolean}
  1959.         mcActionSetLoopIsPalindrome = 23;                            { param is Boolean}
  1960.         mcActionGetLoopIsPalindrome = 24;                            { param is pointer to a Boolean}
  1961.         mcActionSetGrowBoxBounds = 25;                            { param is a Rect}
  1962.         mcActionControllerSizeChanged = 26;                            { no param}
  1963.         mcActionSetSelectionBegin = 29;                            { param is TimeRecord}
  1964.         mcActionSetSelectionDuration = 30;                            { param is TimeRecord, action only taken on set-duration}
  1965.         mcActionSetKeysEnabled = 32;                            { param is Boolean}
  1966.         mcActionGetKeysEnabled = 33;                            { param is pointer to Boolean}
  1967.         mcActionSetPlaySelection = 34;                            { param is Boolean}
  1968.         mcActionGetPlaySelection = 35;                            { param is pointer to Boolean}
  1969.         mcActionSetUseBadge = 36;                            { param is Boolean}
  1970.         mcActionGetUseBadge = 37;                            { param is pointer to Boolean}
  1971.         mcActionSetFlags = 38;                            { param is long of flags}
  1972.         mcActionGetFlags = 39;                            { param is pointer to a long of flags}
  1973.         mcActionSetPlayEveryFrame = 40;                            { param is Boolean}
  1974.         mcActionGetPlayEveryFrame = 41;                            { param is pointer to Boolean}
  1975.         mcActionGetPlayRate = 42;                            { param is pointer to Fixed}
  1976.         mcActionShowBalloon = 43;                            { param is a pointer to a boolean. set to false to stop balloon}
  1977.         mcActionBadgeClick = 44;                            { param is pointer to Boolean. set to false to ignore click}
  1978.         mcActionMovieClick = 45;                            { param is pointer to event record. change “what” to nullEvt to kill click}
  1979.         mcActionSuspend = 46;                            { no param}
  1980.         mcActionResume = 47;                            { no param}
  1981.         mcActionSetControllerKeysEnabled = 48;                        { param is Boolean}
  1982.         mcActionGetTimeSliderRect = 49;                            { param is pointer to rect}
  1983.         mcActionMovieEdited = 50;                            { no param}
  1984.         mcActionGetDragEnabled = 51;                            { param is pointer to Boolean}
  1985.         mcActionSetDragEnabled = 52;                            { param is Boolean}
  1986.  
  1987.  
  1988.     type
  1989.         mcAction = INTEGER;
  1990.  
  1991.  
  1992.     const
  1993.         mcFlagSuppressMovieFrame = $1;
  1994.         mcFlagSuppressStepButtons = $2;
  1995.         mcFlagSuppressSpeakerButton = $4;
  1996.         mcFlagsUseWindowPalette = $8;
  1997.         mcFlagsDontInvalidate = $10;
  1998.  
  1999.         mcPositionDontInvalidate = $20;
  2000.  
  2001.  
  2002.     type
  2003.         mcFlags = LONGINT;
  2004.  
  2005.         MCActionFilterProcPtr = ProcPtr;  { FUNCTION MCActionFilter(mc: MovieController; VAR action: INTEGER; params: UNIV Ptr): BOOLEAN; }
  2006.         MCActionFilterWithRefConProcPtr = ProcPtr;  { FUNCTION MCActionFilterWithRefCon(mc: MovieController; action: INTEGER; params: UNIV Ptr; refCon: LONGINT): BOOLEAN; }
  2007.         MCActionFilterUPP = UniversalProcPtr;
  2008.         MCActionFilterWithRefConUPP = UniversalProcPtr;
  2009.  
  2010.  
  2011.     const
  2012.         mcInfoUndoAvailable = $1;
  2013.         mcInfoCutAvailable = $2;
  2014.         mcInfoCopyAvailable = $4;
  2015.         mcInfoPasteAvailable = $8;
  2016.         mcInfoClearAvailable = $10;
  2017.         mcInfoHasSound = $20;
  2018.         mcInfoIsPlaying = $40;
  2019.         mcInfoIsLooping = $80;
  2020.         mcInfoIsInPalindrome = $100;
  2021.         mcInfoEditingEnabled = $200;
  2022.  
  2023. { menu item codes}
  2024.         mcMenuUndo = 1;
  2025.         mcMenuCut = 3;
  2026.         mcMenuCopy = 4;
  2027.         mcMenuPaste = 5;
  2028.         mcMenuClear = 6;
  2029.  
  2030. { target management }
  2031.  
  2032.     function MCSetMovie (mc: MovieController; theMovie: Movie; movieWindow: WindowPtr; where: Point): ComponentResult;
  2033.     {$IFC NOT GENERATINGCFM}
  2034.     inline
  2035.         $2F3C, $C, $2, $7000, $A82A;
  2036.     {$ENDC}
  2037.     function MCGetIndMovie (mc: MovieController; index: INTEGER): Movie;
  2038.     {$IFC NOT GENERATINGCFM}
  2039.     inline
  2040.         $2F3C, $2, $5, $7000, $A82A;
  2041.     {$ENDC}
  2042.     function MCRemoveMovie (mc: MovieController): ComponentResult;
  2043.     {$IFC NOT GENERATINGCFM}
  2044.     inline
  2045.         $2F3C, 0, $6, $7000, $A82A;
  2046.     {$ENDC}
  2047. { event handling etc. }
  2048.     function MCIsPlayerEvent (mc: MovieController; {CONST}
  2049.                                     var e: EventRecord): ComponentResult;
  2050.     {$IFC NOT GENERATINGCFM}
  2051.     inline
  2052.         $2F3C, $4, $7, $7000, $A82A;
  2053.     {$ENDC}
  2054. { obsolete. use MCSetActionFilterWithRefCon instead. }
  2055.     function MCSetActionFilter (mc: MovieController; blob: MCActionFilterUPP): ComponentResult;
  2056.     {$IFC NOT GENERATINGCFM}
  2057.     inline
  2058.         $2F3C, $4, $8, $7000, $A82A;
  2059.     {$ENDC}
  2060. {}
  2061. {    proc is of the form:}
  2062. {        Boolean userPlayerFilter(MovieController mc, short *action, void *params) =}
  2063. {    proc returns TRUE if it handles the action, FALSE if not}
  2064. {    action is passed as a VAR so that it could be changed by filter (ick)}
  2065. {    this is consistent with the current dialog manager stuff}
  2066. {    params is any potential parameters that go with the action <triple ick> }
  2067. {        such as set playback rate to xxx.}
  2068. {}
  2069.     function MCDoAction (mc: MovieController; action: INTEGER; params: univ Ptr): ComponentResult;
  2070.     {$IFC NOT GENERATINGCFM}
  2071.     inline
  2072.         $2F3C, $6, $9, $7000, $A82A;
  2073.     {$ENDC}
  2074. { state type things }
  2075.     function MCSetControllerAttached (mc: MovieController; attach: BOOLEAN): ComponentResult;
  2076.     {$IFC NOT GENERATINGCFM}
  2077.     inline
  2078.         $2F3C, $2, $A, $7000, $A82A;
  2079.     {$ENDC}
  2080.     function MCIsControllerAttached (mc: MovieController): ComponentResult;
  2081.     {$IFC NOT GENERATINGCFM}
  2082.     inline
  2083.         $2F3C, 0, $B, $7000, $A82A;
  2084.     {$ENDC}
  2085.     function MCSetControllerPort (mc: MovieController; gp: CGrafPtr): ComponentResult;
  2086.     {$IFC NOT GENERATINGCFM}
  2087.     inline
  2088.         $2F3C, $4, $C, $7000, $A82A;
  2089.     {$ENDC}
  2090.     function MCGetControllerPort (mc: MovieController): CGrafPtr;
  2091.     {$IFC NOT GENERATINGCFM}
  2092.     inline
  2093.         $2F3C, 0, $D, $7000, $A82A;
  2094.     {$ENDC}
  2095.     function MCSetVisible (mc: MovieController; visible: BOOLEAN): ComponentResult;
  2096.     {$IFC NOT GENERATINGCFM}
  2097.     inline
  2098.         $2F3C, $2, $E, $7000, $A82A;
  2099.     {$ENDC}
  2100.     function MCGetVisible (mc: MovieController): ComponentResult;
  2101.     {$IFC NOT GENERATINGCFM}
  2102.     inline
  2103.         $2F3C, 0, $F, $7000, $A82A;
  2104.     {$ENDC}
  2105.     function MCGetControllerBoundsRect (mc: MovieController; var bounds: Rect): ComponentResult;
  2106.     {$IFC NOT GENERATINGCFM}
  2107.     inline
  2108.         $2F3C, $4, $10, $7000, $A82A;
  2109.     {$ENDC}
  2110.     function MCSetControllerBoundsRect (mc: MovieController; {CONST}
  2111.                                     var bounds: Rect): ComponentResult;
  2112.     {$IFC NOT GENERATINGCFM}
  2113.     inline
  2114.         $2F3C, $4, $11, $7000, $A82A;
  2115.     {$ENDC}
  2116.     function MCGetControllerBoundsRgn (mc: MovieController): RgnHandle;
  2117.     {$IFC NOT GENERATINGCFM}
  2118.     inline
  2119.         $2F3C, 0, $12, $7000, $A82A;
  2120.     {$ENDC}
  2121.     function MCGetWindowRgn (mc: MovieController; w: WindowPtr): RgnHandle;
  2122.     {$IFC NOT GENERATINGCFM}
  2123.     inline
  2124.         $2F3C, $4, $13, $7000, $A82A;
  2125.     {$ENDC}
  2126. { other stuff }
  2127.     function MCMovieChanged (mc: MovieController; m: Movie): ComponentResult;
  2128.     {$IFC NOT GENERATINGCFM}
  2129.     inline
  2130.         $2F3C, $4, $14, $7000, $A82A;
  2131.     {$ENDC}
  2132. {}
  2133. {    called when the app has changed thing about the movie (like bounding rect) or rate. So that we}
  2134. {        can update our graphical (and internal) state accordingly.}
  2135. {}
  2136.     function MCSetDuration (mc: MovieController; duration: TimeValue): ComponentResult;
  2137.     {$IFC NOT GENERATINGCFM}
  2138.     inline
  2139.         $2F3C, $4, $15, $7000, $A82A;
  2140.     {$ENDC}
  2141. {}
  2142. {    duration to use for time slider -- will be reset next time MCMovieChanged is called}
  2143. {        or MCSetMovie is called}
  2144. {}
  2145.     function MCGetCurrentTime (mc: MovieController; var scale: TimeScale): TimeValue;
  2146.     {$IFC NOT GENERATINGCFM}
  2147.     inline
  2148.         $2F3C, $4, $16, $7000, $A82A;
  2149.     {$ENDC}
  2150. {}
  2151. {    returns the time value and the time scale it is on. if there are no movies, the}
  2152. {        time scale is passed back as 0. scale is an optional parameter}
  2153. {}
  2154. {}
  2155.     function MCNewAttachedController (mc: MovieController; theMovie: Movie; w: WindowPtr; where: Point): ComponentResult;
  2156.     {$IFC NOT GENERATINGCFM}
  2157.     inline
  2158.         $2F3C, $C, $17, $7000, $A82A;
  2159.     {$ENDC}
  2160. {}
  2161. {    makes m the only movie attached to the controller. makes the controller visible.}
  2162. {    the window and where parameters are passed a long to MCSetMovie and behave as}
  2163. {    described there}
  2164. {}
  2165.     function MCDraw (mc: MovieController; w: WindowPtr): ComponentResult;
  2166.     {$IFC NOT GENERATINGCFM}
  2167.     inline
  2168.         $2F3C, $4, $18, $7000, $A82A;
  2169.     {$ENDC}
  2170.     function MCActivate (mc: MovieController; w: WindowPtr; activate: BOOLEAN): ComponentResult;
  2171.     {$IFC NOT GENERATINGCFM}
  2172.     inline
  2173.         $2F3C, $6, $19, $7000, $A82A;
  2174.     {$ENDC}
  2175.     function MCIdle (mc: MovieController): ComponentResult;
  2176.     {$IFC NOT GENERATINGCFM}
  2177.     inline
  2178.         $2F3C, 0, $1A, $7000, $A82A;
  2179.     {$ENDC}
  2180.     function MCKey (mc: MovieController; key: ByteParameter; modifiers: LONGINT): ComponentResult;
  2181.     {$IFC NOT GENERATINGCFM}
  2182.     inline
  2183.         $2F3C, $6, $1B, $7000, $A82A;
  2184.     {$ENDC}
  2185.     function MCClick (mc: MovieController; w: WindowPtr; where: Point; when: LONGINT; modifiers: LONGINT): ComponentResult;
  2186.     {$IFC NOT GENERATINGCFM}
  2187.     inline
  2188.         $2F3C, $10, $1C, $7000, $A82A;
  2189.     {$ENDC}
  2190. {}
  2191. {    calls for editing}
  2192. {}
  2193.     function MCEnableEditing (mc: MovieController; enabled: BOOLEAN): ComponentResult;
  2194.     {$IFC NOT GENERATINGCFM}
  2195.     inline
  2196.         $2F3C, $2, $1D, $7000, $A82A;
  2197.     {$ENDC}
  2198.     function MCIsEditingEnabled (mc: MovieController): LONGINT;
  2199.     {$IFC NOT GENERATINGCFM}
  2200.     inline
  2201.         $2F3C, 0, $1E, $7000, $A82A;
  2202.     {$ENDC}
  2203.     function MCCopy (mc: MovieController): Movie;
  2204.     {$IFC NOT GENERATINGCFM}
  2205.     inline
  2206.         $2F3C, 0, $1F, $7000, $A82A;
  2207.     {$ENDC}
  2208.     function MCCut (mc: MovieController): Movie;
  2209.     {$IFC NOT GENERATINGCFM}
  2210.     inline
  2211.         $2F3C, 0, $20, $7000, $A82A;
  2212.     {$ENDC}
  2213.     function MCPaste (mc: MovieController; srcMovie: Movie): ComponentResult;
  2214.     {$IFC NOT GENERATINGCFM}
  2215.     inline
  2216.         $2F3C, $4, $21, $7000, $A82A;
  2217.     {$ENDC}
  2218.     function MCClear (mc: MovieController): ComponentResult;
  2219.     {$IFC NOT GENERATINGCFM}
  2220.     inline
  2221.         $2F3C, 0, $22, $7000, $A82A;
  2222.     {$ENDC}
  2223.     function MCUndo (mc: MovieController): ComponentResult;
  2224.     {$IFC NOT GENERATINGCFM}
  2225.     inline
  2226.         $2F3C, 0, $23, $7000, $A82A;
  2227.     {$ENDC}
  2228. {}
  2229. { *    somewhat special stuff}
  2230. { }
  2231.     function MCPositionController (mc: MovieController; {CONST}
  2232.                                     var movieRect: Rect; {CONST}
  2233.                                     var controllerRect: Rect; someFlags: LONGINT): ComponentResult;
  2234.     {$IFC NOT GENERATINGCFM}
  2235.     inline
  2236.         $2F3C, $C, $24, $7000, $A82A;
  2237.     {$ENDC}
  2238.     function MCGetControllerInfo (mc: MovieController; var someFlags: LONGINT): ComponentResult;
  2239.     {$IFC NOT GENERATINGCFM}
  2240.     inline
  2241.         $2F3C, $4, $25, $7000, $A82A;
  2242.     {$ENDC}
  2243.     function MCSetClip (mc: MovieController; theClip: RgnHandle; movieClip: RgnHandle): ComponentResult;
  2244.     {$IFC NOT GENERATINGCFM}
  2245.     inline
  2246.         $2F3C, $8, $28, $7000, $A82A;
  2247.     {$ENDC}
  2248.     function MCGetClip (mc: MovieController; var theClip: RgnHandle; var movieClip: RgnHandle): ComponentResult;
  2249.     {$IFC NOT GENERATINGCFM}
  2250.     inline
  2251.         $2F3C, $8, $29, $7000, $A82A;
  2252.     {$ENDC}
  2253.     function MCDrawBadge (mc: MovieController; movieRgn: RgnHandle; var badgeRgn: RgnHandle): ComponentResult;
  2254.     {$IFC NOT GENERATINGCFM}
  2255.     inline
  2256.         $2F3C, $8, $2A, $7000, $A82A;
  2257.     {$ENDC}
  2258.     function MCSetUpEditMenu (mc: MovieController; modifiers: LONGINT; mh: MenuHandle): ComponentResult;
  2259.     {$IFC NOT GENERATINGCFM}
  2260.     inline
  2261.         $2F3C, $8, $2B, $7000, $A82A;
  2262.     {$ENDC}
  2263.     function MCGetMenuString (mc: MovieController; modifiers: LONGINT; item: INTEGER; var aString: Str255): ComponentResult;
  2264.     {$IFC NOT GENERATINGCFM}
  2265.     inline
  2266.         $2F3C, $A, $2C, $7000, $A82A;
  2267.     {$ENDC}
  2268.     function MCSetActionFilterWithRefCon (mc: MovieController; blob: MCActionFilterWithRefConUPP; refCon: LONGINT): ComponentResult;
  2269.     {$IFC NOT GENERATINGCFM}
  2270.     inline
  2271.         $2F3C, $8, $2D, $7000, $A82A;
  2272.     {$ENDC}
  2273.  
  2274.     const
  2275.         kMCSetMovieSelect = $2;
  2276.         kMCGetIndMovieSelect = $5;
  2277.         kMCRemoveMovieSelect = $6;
  2278.         kMCIsPlayerEventSelect = $7;
  2279.         kMCSetActionFilterSelect = $8;
  2280.         kMCDoActionSelect = $9;
  2281.         kMCSetControllerAttachedSelect = $A;
  2282.         kMCIsControllerAttachedSelect = $B;
  2283.         kMCSetControllerPortSelect = $C;
  2284.         kMCGetControllerPortSelect = $D;
  2285.         kMCSetVisibleSelect = $E;
  2286.         kMCGetVisibleSelect = $F;
  2287.         kMCGetControllerBoundsRectSelect = $10;
  2288.         kMCSetControllerBoundsRectSelect = $11;
  2289.         kMCGetControllerBoundsRgnSelect = $12;
  2290.         kMCGetWindowRgnSelect = $13;
  2291.         kMCMovieChangedSelect = $14;
  2292.         kMCSetDurationSelect = $15;
  2293.         kMCGetCurrentTimeSelect = $16;
  2294.         kMCNewAttachedControllerSelect = $17;
  2295.         kMCDrawSelect = $18;
  2296.         kMCActivateSelect = $19;
  2297.         kMCIdleSelect = $1A;
  2298.         kMCKeySelect = $1B;
  2299.         kMCClickSelect = $1C;
  2300.         kMCEnableEditingSelect = $1D;
  2301.         kMCIsEditingEnabledSelect = $1E;
  2302.         kMCCopySelect = $1F;
  2303.         kMCCutSelect = $20;
  2304.         kMCPasteSelect = $21;
  2305.         kMCClearSelect = $22;
  2306.         kMCUndoSelect = $23;
  2307.         kMCPositionControllerSelect = $24;
  2308.         kMCGetControllerInfoSelect = $25;
  2309.         kMCSetClipSelect = $28;
  2310.         kMCGetClipSelect = $29;
  2311.         kMCDrawBadgeSelect = $2A;
  2312.         kMCSetUpEditMenuSelect = $2B;
  2313.         kMCGetMenuStringSelect = $2C;
  2314.         kMCSetActionFilterWithRefConSelect = $2D;
  2315.  
  2316. {***************************************}
  2317. {*                                        *}
  2318. {*          T  I  M  E  B  A  S  E            *}
  2319. {*                                        *}
  2320. {***************************************}
  2321.  
  2322.     function NewTimeBase: TimeBase;
  2323.     {$IFC NOT GENERATINGCFM}
  2324.     inline
  2325.         $303C, $A5, $AAAA;
  2326.     {$ENDC}
  2327.     procedure DisposeTimeBase (tb: TimeBase);
  2328.     {$IFC NOT GENERATINGCFM}
  2329.     inline
  2330.         $303C, $B6, $AAAA;
  2331.     {$ENDC}
  2332.     function GetTimeBaseTime (tb: TimeBase; s: TimeScale; var tr: TimeRecord): TimeValue;
  2333.     {$IFC NOT GENERATINGCFM}
  2334.     inline
  2335.         $303C, $A6, $AAAA;
  2336.     {$ENDC}
  2337.     procedure SetTimeBaseTime (tb: TimeBase; {CONST}
  2338.                                     var tr: TimeRecord);
  2339.     {$IFC NOT GENERATINGCFM}
  2340.     inline
  2341.         $303C, $A7, $AAAA;
  2342.     {$ENDC}
  2343.     procedure SetTimeBaseValue (tb: TimeBase; t: TimeValue; s: TimeScale);
  2344.     {$IFC NOT GENERATINGCFM}
  2345.     inline
  2346.         $303C, $A8, $AAAA;
  2347.     {$ENDC}
  2348.     function GetTimeBaseRate (tb: TimeBase): Fixed;
  2349.     {$IFC NOT GENERATINGCFM}
  2350.     inline
  2351.         $303C, $A9, $AAAA;
  2352.     {$ENDC}
  2353.     procedure SetTimeBaseRate (tb: TimeBase; r: Fixed);
  2354.     {$IFC NOT GENERATINGCFM}
  2355.     inline
  2356.         $303C, $AA, $AAAA;
  2357.     {$ENDC}
  2358.     function GetTimeBaseStartTime (tb: TimeBase; s: TimeScale; var tr: TimeRecord): TimeValue;
  2359.     {$IFC NOT GENERATINGCFM}
  2360.     inline
  2361.         $303C, $AB, $AAAA;
  2362.     {$ENDC}
  2363.     procedure SetTimeBaseStartTime (tb: TimeBase; {CONST}
  2364.                                     var tr: TimeRecord);
  2365.     {$IFC NOT GENERATINGCFM}
  2366.     inline
  2367.         $303C, $AC, $AAAA;
  2368.     {$ENDC}
  2369.     function GetTimeBaseStopTime (tb: TimeBase; s: TimeScale; var tr: TimeRecord): TimeValue;
  2370.     {$IFC NOT GENERATINGCFM}
  2371.     inline
  2372.         $303C, $AD, $AAAA;
  2373.     {$ENDC}
  2374.     procedure SetTimeBaseStopTime (tb: TimeBase; {CONST}
  2375.                                     var tr: TimeRecord);
  2376.     {$IFC NOT GENERATINGCFM}
  2377.     inline
  2378.         $303C, $AE, $AAAA;
  2379.     {$ENDC}
  2380.     function GetTimeBaseFlags (tb: TimeBase): LONGINT;
  2381.     {$IFC NOT GENERATINGCFM}
  2382.     inline
  2383.         $303C, $B1, $AAAA;
  2384.     {$ENDC}
  2385.     procedure SetTimeBaseFlags (tb: TimeBase; timeBaseFlags: LONGINT);
  2386.     {$IFC NOT GENERATINGCFM}
  2387.     inline
  2388.         $303C, $B2, $AAAA;
  2389.     {$ENDC}
  2390.     procedure SetTimeBaseMasterTimeBase (slave: TimeBase; master: TimeBase; {CONST}
  2391.                                     var slaveZero: TimeRecord);
  2392.     {$IFC NOT GENERATINGCFM}
  2393.     inline
  2394.         $303C, $B4, $AAAA;
  2395.     {$ENDC}
  2396.     function GetTimeBaseMasterTimeBase (tb: TimeBase): TimeBase;
  2397.     {$IFC NOT GENERATINGCFM}
  2398.     inline
  2399.         $303C, $AF, $AAAA;
  2400.     {$ENDC}
  2401.     procedure SetTimeBaseMasterClock (slave: TimeBase; clockMeister: Component; {CONST}
  2402.                                     var slaveZero: TimeRecord);
  2403.     {$IFC NOT GENERATINGCFM}
  2404.     inline
  2405.         $303C, $B3, $AAAA;
  2406.     {$ENDC}
  2407.     function GetTimeBaseMasterClock (tb: TimeBase): ComponentInstance;
  2408.     {$IFC NOT GENERATINGCFM}
  2409.     inline
  2410.         $303C, $B0, $AAAA;
  2411.     {$ENDC}
  2412.     procedure ConvertTime (var inout: TimeRecord; newBase: TimeBase);
  2413.     {$IFC NOT GENERATINGCFM}
  2414.     inline
  2415.         $303C, $B5, $AAAA;
  2416.     {$ENDC}
  2417.     procedure ConvertTimeScale (var inout: TimeRecord; newScale: TimeScale);
  2418.     {$IFC NOT GENERATINGCFM}
  2419.     inline
  2420.         $303C, $B7, $AAAA;
  2421.     {$ENDC}
  2422.     procedure AddTime (var dst: TimeRecord; {CONST}
  2423.                                     var src: TimeRecord);
  2424.     {$IFC NOT GENERATINGCFM}
  2425.     inline
  2426.         $303C, $10C, $AAAA;
  2427.     {$ENDC}
  2428.     procedure SubtractTime (var dst: TimeRecord; {CONST}
  2429.                                     var src: TimeRecord);
  2430.     {$IFC NOT GENERATINGCFM}
  2431.     inline
  2432.         $303C, $10D, $AAAA;
  2433.     {$ENDC}
  2434.     function GetTimeBaseStatus (tb: TimeBase; var unpinnedTime: TimeRecord): LONGINT;
  2435.     {$IFC NOT GENERATINGCFM}
  2436.     inline
  2437.         $303C, $10B, $AAAA;
  2438.     {$ENDC}
  2439.     procedure SetTimeBaseZero (tb: TimeBase; var zero: TimeRecord);
  2440.     {$IFC NOT GENERATINGCFM}
  2441.     inline
  2442.         $303C, $128, $AAAA;
  2443.     {$ENDC}
  2444.     function GetTimeBaseEffectiveRate (tb: TimeBase): Fixed;
  2445.     {$IFC NOT GENERATINGCFM}
  2446.     inline
  2447.         $303C, $124, $AAAA;
  2448.     {$ENDC}
  2449. {***************************************}
  2450. {*                                        *}
  2451. {*          C  A  L  L  B  A  C  K             *}
  2452. {*                                        *}
  2453. {***************************************}
  2454.     function NewCallBack (tb: TimeBase; cbType: INTEGER): QTCallBack;
  2455.     {$IFC NOT GENERATINGCFM}
  2456.     inline
  2457.         $303C, $EB, $AAAA;
  2458.     {$ENDC}
  2459.     procedure DisposeCallBack (cb: QTCallBack);
  2460.     {$IFC NOT GENERATINGCFM}
  2461.     inline
  2462.         $303C, $EC, $AAAA;
  2463.     {$ENDC}
  2464.     function GetCallBackType (cb: QTCallBack): INTEGER;
  2465.     {$IFC NOT GENERATINGCFM}
  2466.     inline
  2467.         $303C, $ED, $AAAA;
  2468.     {$ENDC}
  2469.     function GetCallBackTimeBase (cb: QTCallBack): TimeBase;
  2470.     {$IFC NOT GENERATINGCFM}
  2471.     inline
  2472.         $303C, $EE, $AAAA;
  2473.     {$ENDC}
  2474.     function CallMeWhen (cb: QTCallBack; callBackProc: QTCallBackUPP; refCon: LONGINT; param1: LONGINT; param2: LONGINT; param3: LONGINT): OSErr;
  2475.     {$IFC NOT GENERATINGCFM}
  2476.     inline
  2477.         $303C, $B8, $AAAA;
  2478.     {$ENDC}
  2479.     procedure CancelCallBack (cb: QTCallBack);
  2480.     {$IFC NOT GENERATINGCFM}
  2481.     inline
  2482.         $303C, $B9, $AAAA;
  2483.     {$ENDC}
  2484. {***************************************}
  2485. {*                                        *}
  2486. {*          C L O C K   C A L L B A C K      *}
  2487. {*                S U P P O R T              *}
  2488. {*                                        *}
  2489. {***************************************}
  2490.     function AddCallBackToTimeBase (cb: QTCallBack): OSErr;
  2491.     {$IFC NOT GENERATINGCFM}
  2492.     inline
  2493.         $303C, $129, $AAAA;
  2494.     {$ENDC}
  2495.     function RemoveCallBackFromTimeBase (cb: QTCallBack): OSErr;
  2496.     {$IFC NOT GENERATINGCFM}
  2497.     inline
  2498.         $303C, $12A, $AAAA;
  2499.     {$ENDC}
  2500.     function GetFirstCallBack (tb: TimeBase): QTCallBack;
  2501.     {$IFC NOT GENERATINGCFM}
  2502.     inline
  2503.         $303C, $12B, $AAAA;
  2504.     {$ENDC}
  2505.     function GetNextCallBack (cb: QTCallBack): QTCallBack;
  2506.     {$IFC NOT GENERATINGCFM}
  2507.     inline
  2508.         $303C, $12C, $AAAA;
  2509.     {$ENDC}
  2510.     procedure ExecuteCallBack (cb: QTCallBack);
  2511.     {$IFC NOT GENERATINGCFM}
  2512.     inline
  2513.         $303C, $12D, $AAAA;
  2514.     {$ENDC}
  2515. {***************************************}
  2516. {*                                        *}
  2517. {*          S Y N C    T A S K S              *}
  2518. {*                S U P P O R T              *}
  2519. {*                                        *}
  2520. {***************************************}
  2521.     function QueueSyncTask (task: QTSyncTaskPtr): OSErr;
  2522.     {$IFC NOT GENERATINGCFM}
  2523.     inline
  2524.         $303C, $203, $AAAA;
  2525.     {$ENDC}
  2526.     function DequeueSyncTask (qElem: QTSyncTaskPtr): OSErr;
  2527.     {$IFC NOT GENERATINGCFM}
  2528.     inline
  2529.         $303C, $204, $AAAA;
  2530.     {$ENDC}
  2531. { UPP call backs }
  2532.  
  2533.     const
  2534.         uppMovieRgnCoverProcInfo = $00000FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param): 2 byte result; }
  2535.         uppMovieProgressProcInfo = $0000FAE0; { FUNCTION (4 byte param, 2 byte param, 2 byte param, 4 byte param, 4 byte param): 2 byte result; }
  2536.         uppMovieDrawingCompleteProcInfo = $000003E0; { FUNCTION (4 byte param, 4 byte param): 2 byte result; }
  2537.         uppTrackTransferProcInfo = $000003E0; { FUNCTION (4 byte param, 4 byte param): 2 byte result; }
  2538.         uppGetMovieProcInfo = $00003FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; }
  2539.         uppMoviePreviewCallOutProcInfo = $000000D0; { FUNCTION (4 byte param): 1 byte result; }
  2540.         uppMoviesErrorProcInfo = $00000380; { PROCEDURE (2 byte param, 4 byte param); }
  2541.         uppTextMediaProcInfo = $00003FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; }
  2542.         uppQTCallBackProcInfo = $000003C0; { PROCEDURE (4 byte param, 4 byte param); }
  2543.         uppQTSyncTaskProcInfo = $000000C0; { PROCEDURE (4 byte param); }
  2544.         uppMCActionFilterProcInfo = $00000FD0; { FUNCTION (4 byte param, 4 byte param, 4 byte param): 1 byte result; }
  2545.         uppMCActionFilterWithRefConProcInfo = $00003ED0; { FUNCTION (4 byte param, 2 byte param, 4 byte param, 4 byte param): 1 byte result; }
  2546.  
  2547.     function NewMovieRgnCoverProc (userRoutine: MovieRgnCoverProcPtr): MovieRgnCoverUPP;
  2548.     {$IFC NOT GENERATINGCFM }
  2549.     inline
  2550.         $2E9F;
  2551.     {$ENDC}
  2552.  
  2553.     function NewMovieProgressProc (userRoutine: MovieProgressProcPtr): MovieProgressUPP;
  2554.     {$IFC NOT GENERATINGCFM }
  2555.     inline
  2556.         $2E9F;
  2557.     {$ENDC}
  2558.  
  2559.     function NewMovieDrawingCompleteProc (userRoutine: MovieDrawingCompleteProcPtr): MovieDrawingCompleteUPP;
  2560.     {$IFC NOT GENERATINGCFM }
  2561.     inline
  2562.         $2E9F;
  2563.     {$ENDC}
  2564.  
  2565.     function NewTrackTransferProc (userRoutine: TrackTransferProcPtr): TrackTransferUPP;
  2566.     {$IFC NOT GENERATINGCFM }
  2567.     inline
  2568.         $2E9F;
  2569.     {$ENDC}
  2570.  
  2571.     function NewGetMovieProc (userRoutine: GetMovieProcPtr): GetMovieUPP;
  2572.     {$IFC NOT GENERATINGCFM }
  2573.     inline
  2574.         $2E9F;
  2575.     {$ENDC}
  2576.  
  2577.     function NewMoviePreviewCallOutProc (userRoutine: MoviePreviewCallOutProcPtr): MoviePreviewCallOutUPP;
  2578.     {$IFC NOT GENERATINGCFM }
  2579.     inline
  2580.         $2E9F;
  2581.     {$ENDC}
  2582.  
  2583.     function NewMoviesErrorProc (userRoutine: MoviesErrorProcPtr): MoviesErrorUPP;
  2584.     {$IFC NOT GENERATINGCFM }
  2585.     inline
  2586.         $2E9F;
  2587.     {$ENDC}
  2588.  
  2589.     function NewTextMediaProc (userRoutine: TextMediaProcPtr): TextMediaUPP;
  2590.     {$IFC NOT GENERATINGCFM }
  2591.     inline
  2592.         $2E9F;
  2593.     {$ENDC}
  2594.  
  2595.     function NewQTCallBackProc (userRoutine: QTCallBackProcPtr): QTCallBackUPP;
  2596.     {$IFC NOT GENERATINGCFM }
  2597.     inline
  2598.         $2E9F;
  2599.     {$ENDC}
  2600.  
  2601.     function NewQTSyncTaskProc (userRoutine: QTSyncTaskProcPtr): QTSyncTaskUPP;
  2602.     {$IFC NOT GENERATINGCFM }
  2603.     inline
  2604.         $2E9F;
  2605.     {$ENDC}
  2606.  
  2607.     function NewMCActionFilterProc (userRoutine: MCActionFilterProcPtr): MCActionFilterUPP;
  2608.     {$IFC NOT GENERATINGCFM }
  2609.     inline
  2610.         $2E9F;
  2611.     {$ENDC}
  2612.  
  2613.     function NewMCActionFilterWithRefConProc (userRoutine: MCActionFilterWithRefConProcPtr): MCActionFilterWithRefConUPP;
  2614.     {$IFC NOT GENERATINGCFM }
  2615.     inline
  2616.         $2E9F;
  2617.     {$ENDC}
  2618.  
  2619.     function CallMovieRgnCoverProc (theMovie: Movie; changedRgn: RgnHandle; refcon: LONGINT; userRoutine: MovieRgnCoverUPP): OSErr;
  2620.     {$IFC NOT GENERATINGCFM}
  2621.     inline
  2622.         $205F, $4E90;
  2623.     {$ENDC}
  2624.  
  2625.     function CallMovieProgressProc (theMovie: Movie; message: INTEGER; whatOperation: INTEGER; percentDone: Fixed; refcon: LONGINT; userRoutine: MovieProgressUPP): OSErr;
  2626.     {$IFC NOT GENERATINGCFM}
  2627.     inline
  2628.         $205F, $4E90;
  2629.     {$ENDC}
  2630.  
  2631.     function CallMovieDrawingCompleteProc (theMovie: Movie; refCon: LONGINT; userRoutine: MovieDrawingCompleteUPP): OSErr;
  2632.     {$IFC NOT GENERATINGCFM}
  2633.     inline
  2634.         $205F, $4E90;
  2635.     {$ENDC}
  2636.  
  2637.     function CallTrackTransferProc (t: Track; refCon: LONGINT; userRoutine: TrackTransferUPP): OSErr;
  2638.     {$IFC NOT GENERATINGCFM}
  2639.     inline
  2640.         $205F, $4E90;
  2641.     {$ENDC}
  2642.  
  2643.     function CallGetMovieProc (offset: LONGINT; size: LONGINT; dataPtr: univ Ptr; refCon: univ Ptr; userRoutine: GetMovieUPP): OSErr;
  2644.     {$IFC NOT GENERATINGCFM}
  2645.     inline
  2646.         $205F, $4E90;
  2647.     {$ENDC}
  2648.  
  2649.     function CallMoviePreviewCallOutProc (refcon: LONGINT; userRoutine: MoviePreviewCallOutUPP): BOOLEAN;
  2650.     {$IFC NOT GENERATINGCFM}
  2651.     inline
  2652.         $205F, $4E90;
  2653.     {$ENDC}
  2654.  
  2655.     procedure CallMoviesErrorProc (theErr: OSErr; refcon: LONGINT; userRoutine: MoviesErrorUPP);
  2656.     {$IFC NOT GENERATINGCFM}
  2657.     inline
  2658.         $205F, $4E90;
  2659.     {$ENDC}
  2660.  
  2661.     function CallTextMediaProc (theText: Handle; theMovie: Movie; var displayFlag: INTEGER; refcon: LONGINT; userRoutine: TextMediaUPP): OSErr;
  2662.     {$IFC NOT GENERATINGCFM}
  2663.     inline
  2664.         $205F, $4E90;
  2665.     {$ENDC}
  2666.  
  2667.     procedure CallQTCallBackProc (cb: QTCallBack; refCon: LONGINT; userRoutine: QTCallBackUPP);
  2668.     {$IFC NOT GENERATINGCFM}
  2669.     inline
  2670.         $205F, $4E90;
  2671.     {$ENDC}
  2672.  
  2673.     procedure CallQTSyncTaskProc (task: univ Ptr; userRoutine: QTSyncTaskUPP);
  2674.     {$IFC NOT GENERATINGCFM}
  2675.     inline
  2676.         $205F, $4E90;
  2677.     {$ENDC}
  2678.  
  2679.     function CallMCActionFilterProc (mc: MovieController; var action: INTEGER; params: univ Ptr; userRoutine: MCActionFilterUPP): BOOLEAN;
  2680.     {$IFC NOT GENERATINGCFM}
  2681.     inline
  2682.         $205F, $4E90;
  2683.     {$ENDC}
  2684.  
  2685.     function CallMCActionFilterWithRefConProc (mc: MovieController; action: INTEGER; params: univ Ptr; refCon: LONGINT; userRoutine: MCActionFilterWithRefConUPP): BOOLEAN;
  2686.     {$IFC NOT GENERATINGCFM}
  2687.     inline
  2688.         $205F, $4E90;
  2689.     {$ENDC}
  2690.  
  2691. { $ALIGN RESET}
  2692. { $POP}
  2693.  
  2694. {$ENDC}
  2695.  {__MOVIES__}
  2696.  
  2697. implementation
  2698. end.
  2699.